python—基礎練習題
阿新 • • 發佈:2018-09-24
輸入一個數 val sum code 冒泡排序 相同 %d a + b 1-1 一、字典輸出
import json
dict1 = {‘School‘:‘zhoubei‘,‘Name‘: ‘張三‘, ‘Age‘: 7, ‘Class‘: ‘第一班‘}
print dict1[‘School‘]
print json.dumps(dict1).decode(‘unicode-escape‘)
二、if /while 循環
-------輸入三個數字,是否能組成三角形,並判斷是什麽三角形-------- n1 = int(raw_input(‘請輸入第一個整數數字:‘)) n2 = int(raw_input(‘請輸入第二個整數數字:‘)) n3 = int(raw_input(‘請輸入第三個整數數字:‘)) if n1 + n2> n3 and n2 + n3> n1 and n1 + n3> n2:??????? #兩邊之和大於第三邊 if n1 == n2 and n2 == n3: print (‘這是個等邊三角形‘) elif n1 == n2 or n2 == n3 or n1 == n3: print (‘這是個等腰三角形‘) elif n1**2+n2**2 == n3**2 or n2**2 + n3**2 == n1**2 or n1**2 + n3**2 == n2**2:??? #符合勾股定理為直角三角形 print (‘這是個直角三角形‘) else: print (‘這是個普通的三角形‘) else: print (‘無法組成三角形:‘) -----------------與電腦猜拳------------------- import random import json dict_c = {1:‘石頭‘,2:‘剪刀‘,3:‘布‘} dict_u = {‘石頭‘:1,‘剪刀‘:2,‘布‘:3} user = raw_input(‘請輸入:(只能是石頭/剪刀/布)‘) user1 = dict_u[user] computer = random.randint(1,3) c = dict_c[computer] if user != ‘石頭‘ and user != ‘剪刀‘ and user != ‘布‘: print(‘你又調皮了,只能輸入石頭/剪刀/布‘) else: print(‘電腦出:‘) print json.dumps(c).decode(‘unicode-escape‘) print("輸贏結果:") if user == c: print(‘平手‘) elif user1 == 1 and computer == 3: print(‘SB,你輸啦‘) elif user1 == 2 and computer == 1: print(‘SB,你輸啦‘) elif user1 == 3 and computer == 2: print(‘SB,你輸啦‘) else: print(‘你走狗屎運了‘) -----------------輸出100以內的素數------------------- n=2 while(n<100): i = 2??????????????????? #i從2開始 while(i<=10): if n%i == 0: break i+=1 if (i>n/i): print n n+=1
三、for 循環
#公雞3元/只,母雞5元/只,小雞每元3只 -----------------100元買100只雞------------------- for x in range(33):????????????????? # 100元內,公雞數不能超過33只 for y in range(20):??????????? ? # 同理,母雞不能超過20只 for z in range(100):?? ???? # 同理,小雞不會超過100只 if 3*x+5*y+(1.0/3)*z ==100 and x+y+z==100: print x,y,z --------------輸出1-9,0----------------- list1 = range(10) list1.append(list1.pop(0)) print list1 #一對兔子每月生一對兔子,剛出生的兔子兩個月後才能生育 --------------21個月兔子數量----------------- num1 = 2 num2 = 2 sum = 0 for i in range(1,21): print "第",i,"個月"??????? num1 = num2 num2 = sum sum = num1+num2 print "有", sum, "個兔子" ????#後一個月兔子的數量為前兩個月兔子數量之和 print "一共有",sum,"個兔子" #小明有一美元要買(1-100美分)東西,求出找零最少的情況 --------------找零錢----------------- buy = input(‘請輸入買糖的價格1-100:‘) count = 0 for a in range(0,5):????????????????? #25美分面額的 不能超過4張? (25×5>100) ??????? for b in range(0,3):??????????????? #10美分面額的 不能超過2張? (10×3>25)這時可以給一張25美分面額的替代了 for c in range(0,2):??????? ????# 5美分面額的 不能超過1張 ?(5×2=10) 這時可以用一張10美分面額的替代了 for d in range(0,5):??? ????#1美分的 不能超過4張?? (1×5=5) 這時可以給一張5 美分面額的替代 if a*25+b*10+c*5+d*1+buy == 100 and 10*b+5*c!=25 and 5*d+c!=10: count = a + b + c + d print ‘找零%d個25美分 %d個10美分 %d個5美分 %d個1美分‘%(a, b, c, d) print ‘一共‘, count, ‘個硬幣‘ ---------------乘法口訣表-------------------- for i in range(1,10): for j in range(1,i+1): if i*j<10: print i, ‘ב, j, ‘=‘, i * j, ‘ ‘, else: print i,‘ב,j ,‘=‘, i*j,‘‘, print ‘‘
四、函數
-----------------輸出不定個數的數字的和------------- sum_b = 0 sum_c = 0 sum_d = 0 def functionC(x,y,*args,**kwargs): global sum_d sum_b = x+y sum_c= sum(args)??????? #求和函數sum()必須傳入可叠代對象 sum_d = sum_c+sum_b return sum_d functionC(1,2,3,4,5,6,7,8,9,10) print sum_d ------------模擬range()全功能---------------- list_input = [2,9] ????#手動調制輸入的range() def range_1(*args): if len(list_input)==1: #輸入一個數字時 x0 = list_input[0] list_output = [] i = 0 while x0>1 and i<x0: list_output.append(i) i+=1 else: print ‘輸入的數字必須大於1‘ return list_output elif len(list_input)==2: #輸入二個數字時 x0 = list_input[0] x1 = list_input[1] list_output = [] i = x0 if x0<x1: while x1>0 and i<x1: list_output.append(i) i+=1 return list_output else: print(‘輸入錯誤‘) elif len(list_input)==3: #輸入三個數字時 x0 = list_input[0] x1 = list_input[1] x3 = list_input[2] list_output = [] i = x0 if x0<x1 and x3<x1: while x1>1 and i<x1: list_output.append(i) i+=x3 return list_output else: print(‘輸入錯誤‘) else: print ‘你又調皮了,最多只能輸入三個‘ print range_1(list_input) -----------遍歷計算字符串的長度---------- list_a = [] j = 0 def str_x(str_a): for i in str_a: global j??????????? #使用全局變量計數 list_a.append(i) j+=1 return j str_a =list(raw_input(‘請輸入字符串:‘)) str_x(str_a) print j ------------計算傳入數字的各個位數之和------------ def item_sum(x): if str1<0:??????????????? #輸入的數小於零時 abs(str1)??????? #取絕對值 list_sum = [] str2 = str(x) for item in str2: list_sum.append(int(item)) elif str1>0: list_sum = [] str2 = str(x) for item in str2: list_sum.append(int(item)) return sum(list_sum) else: return 0 str1 = 3418291283??????????? #傳入數字轉成字符串 / 傳入數字型字符串 print item_sum(str1) -----------------互不相同且無重復數字的三位數---------------- count = 0 list_b = 0 def third_num(list_a): list_len = [] global count for i in list_a: for j in list_a: for k in list_a: if i!=j and j!=k and i!=k: list_b =str(i)+str(j)+str(k) list_len.append(list_b) count+=1 return list_len list_a = [1,2,3,4] print third_num(list_a) print ‘三位數個數:‘,count ----------------判斷這一天是這一年的第幾天---------------------- def day_in_year(year_n,month_n,day_n): run = [31,29,31,30,31,30,31,31,30,31,30,31] #閏年,二月份天數不能大於29 ping = [31,28,31,30,31,30,31,31,30,31,30,31] #非閏年,二月份天數不能大於28 if year_n>= 1 and 12>=month_n>= 1 and 32>day_n>= 1: if year_n % 4 == 0 and year_n % 100 != 0 or year_n % 400==0: day_n = sum(run[:month_n-1])+day_n return day_n else: day_n = sum(ping[:month_n-1])+day_n return day_n else: print ‘輸入格式錯誤‘ year_n, month_n,day_n= int(raw_input(‘請輸入年‘)),int(raw_input(‘請輸入月‘)),int(raw_input(‘請輸入日‘)) print day_in_year(year_n,month_n,day_n) ----------------不使用sort()完成對任意list的升序和降序的排列-------------------???#冒泡排序 list7 = [2,5,6,1,4,9,] def sort_num(*args): list8 = [] for i in range(len(list7)): for j in range(len(list7)-1): if list7[i]<list7[j]: list7[j],list7[i] = list7[i],list7[j]??? #直接交換 list8 = list7 return list8 print ‘升序結果:‘,sort_num(list7) -----------對元組內數字型元素求和---------------- def fun(num1,num2,*agrs,**kwargs): sum1 = 0 sum2 = 0 sum0 = int(num1.strip())+int(num2) for i in agrs: if str(i).strip().isdigit(): sum1 += int(i) for j in kwargs.values(): if str(j).strip().isdigit(): sum2 += int(j) num3 = sum0+sum1+sum2 return num3 a = fun(‘ 1‘, 2, 3, ‘ 4‘, 5, ‘hello‘, a1=2, b1=3) print a --------------字典合並---------------- def merge_two_dicts(x, y): dict3 = {} dict3 = dict1.copy() dict3.update(dict2) return dict3 dict1 = {‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:‘hello‘} dict2 = {‘a‘:2,‘b‘:‘2‘,‘c‘:‘she‘,‘e‘:‘10‘,‘f‘:4} print(merge_two_dicts(dict1,dict2))
python—基礎練習題