Python练习题
Python1作業
1. 人生苦短,我學python
name=input() print("{}同學,人生苦短,我學python".format(name)) print("{}大俠,學好python,走遍天下也不怕".format(name[0])) print("{}小盆友,學好python,你最帥".format(name[1:]))2. 匯率兌換
money=input() if money[0] == 'R': U=eval(money[1:])/6 print("$%.2f" % U) elif money[0] == '$': R=6*eval(money[1:]) print("R%.2f" %R)3. 求圓面積
import math a = eval(input()) print("%.2f" % (math.pi*(a**2)))Python2作業
函數題
1.求m到n之和
def sum(m,n):s = 0if m < n:for i in range(m, n+1):s = s + ireturn s2. 遞歸求斐波那契數列
def f(n):if n == 0:return 0if n == 1 or n == 2:return 1else:return f(n-2) + f(n-1) //遞歸編程題
1. 企業根據利潤提成發放獎金問題
a = int(input()) b = [1000000,600000,400000,200000,100000,0] c = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for i in range(0,6):if a>b[i]:r+=(a-b[i])*c[i] //計算超出部分應發獎金a=b[i] //重置計算標準 print(r)2. 計算某天距元旦的天數
Leap = (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) DisLeap = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) #閏年月份天數 result = []def dayNum(num):for i in range(num):str1 = input()date = str1.split(' ') #將字符串以空格劃分try:year = int(date[0])month = int(date[1])day = int(date[2])if year % 400 == 0 or year % 4 == 0 and year % 100 != 0: #判斷閏年if month <= 12 and month > 0 and day > 0 and day <= Leap[month - 1]:res = 0for j in range(month - 1): # month - 1res += Leap[j]res += dayresult.append("Totaldays = " + str(res))else:result.append("ErrorInput")else:if month <= 12 and month > 0 and day > 0 and day <= DisLeap[month - 1]:res = 0for j in range(month - 1):res += DisLeap[j]res += dayresult.append("Totaldays = " + str(res))else:result.append("ErrorInput")except:result.append("ErrorInput")for k in result:print(k)n = eval(input()) if n >= 0:dayNum(n)3. 溫度轉換
c = input() ctype = c[-1] #[-1]指向字符串最后一個字符 if ctype == 'F' or ctype == 'f':print("%.2fC" % ((float(c[0 : -1]) - 32) / 1.8)) #c[0:-1] 從0到倒數第一個字符,但不包括最后一個 elif ctype == 'C' or ctype == 'c':print("%.2fF" % (float(c[0 : -1]) * 1.8 + 32)) else:print("Error")4. 3,5,7的倍數判定
n = int(input()) if n % 3 == 0 or n % 5 == 0 or n % 7 == 0:print("Yes") else:print("No")5. 計算分段函數f(x)的值
n = float(input()) if n == 0:print("f(0.0)=0.000") else:print("f({:.2f})={:.3f}".format(n, 1/n))6.統計字符串中不同種類的字符個數
letter = 0 digits = 0 spaces = 0 other = 0 str0 = input() for i in str0:if i.isalpha(): #判斷是不是字符串 .isalpha()方法letter+=1elif i.isdigit(): #判斷是不是數字 .isdigit()方法digits+=1elif i.isspace(): #判斷是不是空格 .isspace()方法spaces+=1else:other+=1 print('letters=%d,digits=%d,spaces=%d,others=%d'%(letter,digits,spaces,other))Python 實驗1
4. 重復多個星號
a = int(input()) s = "" for n in range(a):s += "*" print(s)5. 輸入半徑(大于0),計算圓面積
n = float(input()) while n <= 0:n = float(input()) s = 3.14 * n * n print('半徑為{:g}的圓的面積是%0.1f' . format(n) %s)6. 按格式輸出日期
y = int(input()) m = int(input()) d = int(input()) if m < 13 and d < 32 and m > 0 and d > 0: #判斷輸入是否合法print("{}-{}-{}" .format(y, m, d))print("{}/{}/{}" .format(y, m, d))print("{}年{}月{}日" .format(y, m, d))7. 華氏溫度到攝氏溫度的轉換
f = float(input()) c = 5/9*(f-32) print("%.1f" % c)8. 比較大小
numlist=sorted(list(map(eval, input().split()))) print("{:c}<{:c}<{:c}".format(numlist[0], numlist[1], numlist[2]))9. 統計字符串中子串出現的次數
str1 = input() str2 = input() ncount = str1.count(str2) #count函數是Python的字符串函數。用于統計字符串中某字符出現的次數。 print(ncount)Python 實驗2
1. 判斷點在圓內圓
x, y = input().split(',') x, y=eval(x), eval(y) r = float(input()) x1, y1 = input().split(',') x1, y1=eval(x1), eval(y1)if (x - x1)**2 + (y - y1)**2 > r**2:print("( {} , {} )在圓外".format(x1, y1)) else:print("( {} , {} )在圓內".format(x1, y1))2. 身體質量指數
x, y = input().split(',') x, y = eval(x), eval(y) BMI = x / (y**2) if BMI < 18:print("超輕") elif BMI <= 25:print("標準") elif BMI <= 27:print("超重") else:print("肥胖")3. 兩個給定正整數的最大公約數和最小公倍數
x = int(input()) y = int(input())def gcd(x1, y1): #最大公約數m = max(x1, y1)n = min(x1, y1)while m % n:m, n = n, m % nreturn ndef lcm(x2, y2): #最小公倍數m = max(x2, y2)n = min(x2, y2)while m % n:m, n = n, m % nreturn x2 * y2 // n #二者只是最后一步不同print("{} {}".format(gcd(x, y), lcm(x, y)))4. X教授決策成績評定
a = int(input()) if a < 60:print("E") elif a < 70:print("D") elif a < 80:print("C") elif a < 90:print("B") else:print("A")5. 統計輸入字符個數
str = str(input()) eng=num=bla=oth=zh=0 for i in str:if (ord(i)>=97 and ord(i)<=122) or (ord(i)>=65 and ord(i)<=90): #ord() 將字符轉為ASCII值,并返回值eng=eng+1elif ord(i)>=48 and ord(i)<=57:num=num+1elif ord(i)==32:bla=bla+1elif 0x4e00 <= ord(i) <= 0x9fa5:zh=zh+1else:oth=oth+1 print('您輸入的字符串中有{}個空格,{}個數字,{}個中文,{}個英文字符,{}個其他字符'.format(bla,num,zh,eng,oth))6. 判斷是否為3和5的倍數
a = int(input()) if a % 3 == 0 and a % 5 == 0:print("{}是3和5的倍數".format(a)) else:print("{}不是3和5的倍數".format(a))7. 天天向上的力量
dayup = 1.0 dayfactor = float(input()) if dayfactor > 0:for i in range(365):if i % 7 in [6, 0]:dayup = dayup * (1 - dayfactor)else:dayup = dayup * (1 + dayfactor)print("工作日的力量:{:.2f}".format(dayup)) else:print("輸入的值應該大于0")8. 百錢百雞
n = int(input()) #雞的總數 for a in range(n): # a公雞的總數for b in range(n): #b 母雞的總數c = n - a - b #c 小雞的總數if a*5+b*3+c/3 == n and c%3==0:print('cock={},hen={},chicken={}'.format(a, b, c))9. 三七二十一
n = int(input()) for i in range(n):sum = 0m1, m2 = map(int, input().split())for i in range(m1, m2 + 1):if i % 3 == 2 and i % 7 == 1:if sum >= 1:print(" %d" % i, end='')else:print(i, end='')sum += 1if sum == 0:print("none")else:print()10. 親和數的判斷
try: #注意異常處理 try: except EoFErrorwhile True:a, b = input().split()a = int(a)b = int(b)sum0 = 0sum1 = 0for i in range(1, a):if a % i == 0:sum0 = sum0+ifor y in range(1, b):if b % y == 0:sum1 = sum1+yif sum0 == b and sum1 == a:print("YES")else:print("NO") except EOFError:pass注意異常問題
Python 實驗3
1. 求整數的位數以及各位數字之和
n=input() num=list(n) print(len(num),sum(int(i) for i in num))2. 任意多行字符串拆分數值求和
try:while True:str1 = input()str2 = ''for i in str1:if i.isdigit():str2 += i #將所有數字串進行提取else:str2 += ' ' #用空格代替字符,并對數字串進行劃分list1 = list(map(int, str2.split())) # 將數字字符串進行劃分 調整為list列表print("%s:%s"%(str1,sum(list1))) except EOFError:pass3. 數據提取
studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]scores = {} for stud in studs:sv = stud.items() v = []for it in sv:if it[0] =='sid':k = it[1]else:v.append(it[1])scores[k] = vso = list(scores.items()) so.sort(key = lambda x:x[0],reverse = False) for l in so:print('{}:{}'.format(l[0],l[1]))4. 漢字表示的大寫數字金額
s=str(input()) s=list(s) length=len(s) zd={0:"零",1:"壹",2:'貳',3:'叁',4:'肆',5:'伍',6:'陸',7:'柒',8:'捌',9:'玖'} for i in range(len(s)):print(zd[ord(s[i])-48],end="")if len(s)-i==9:print("億",end="")continueif len(s)-i==5:print("萬",end="")continueif (len(s)-i)==7 or (len(s)-i)==3 or (len(s)-i)==11:print("佰",end="")elif (len(s)-i)==8 or (len(s)-i)==4 or (len(s)-i)==12:print("仟",end="")elif (len(s)-i)==6 or (len(s)-i)==2 or (len(s)-i)==10:print("拾",end="") print("圓")5. 字母替換
s=input() for i in s:if i.isupper(): #.isupper()如果是大寫字母,返回Truetmp1=ord(i)-65tmp2=90-tmp1i=chr(tmp2)print(i,end="")6. 查驗身份證
def is_digits(ss):for s in ss:if not s.isdigit():return Falsereturn Trueweights = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] M_codes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] wrong_ids = [] n = int(input()) for i in range(n):id = input()if len(id) != 18: wrong_ids.append(id)continueif not is_digits(id[:17]): wrong_ids.append(id)continue#計算驗證碼total = 0for j in range(17):total += int(id[j]) * weights[j]z = total % 11if M_codes[z] != id[17]: wrong_ids.append(id)if len(wrong_ids) == 0:print("All passed") else:for id in wrong_ids:print(id)7. 字典合并
dict1 = dict(eval(input())) dict2 = dict(eval(input())) list1 = [] for i in dict1:if i in dict2:dict2[i] += dict1[i]else:dict2[i] = dict1[i] for i in dict2:list1.append(i) list2 = list(set(list1)) list3 = [] list4 = [] for i in list2:if isinstance(i, str):list3.append(i)list4.append(ord(i))else:list4.append(i) dict3 = {} for i in dict2:if isinstance(i, str):dict3[ord(i)] = dict2[i]else:dict3[i] = dict2[i] for i in sorted(list4):if chr(i) not in list3:print("%s:%s" % (i, dict3[i]))else:print("'%s':%s" % (chr(i), dict3[i]))8. 單詞統計
n = input().split() print(len(n))9.集合A-B
t = eval(input()) for i in range(t):a, b = [], []s = list(map(int, input().split(" ")))n, m = s[0], s[1]a = s[2:2 + n]b = s[2 + n:]# c = [item for item in a if item not in b]c = set(a)-set(b)c = sorted(c)try:for y in range(len(c) - 1):print(c[y], end=" ")print(c[-1])except:print("NULL")10.奇特的四位數
def digitSum(v): lis = list(str(v))lis = list(map(int, lis))return sum(lis)def digitsame(v): lis = list(str(v))lis = list(map(int, lis))lis1 = list(set(lis))if len(lis1) == 4:return Truereturn Falselis = [] for i in range(1000, 10000):if digitSum(i) == 6 and i % 11 == 0 and digitsame(i):lis.append(i) print(6) print(lis)Python 實驗四
1. 列表推導生成隨機數矩陣
def generateMatrix(m,n):return [[random.randint(0,20) for x in range(n)] for y in range(m)]2.整數數位和
def digitSum(v):sum=0while v:sum+=v%10v//=10return int (sum)4. 編寫生成斐波那契數列的函數并調用。
def fib(n):n=eval(n)if n < 0:print("輸入數據錯誤!")else:if n>0 and n<3:print("1 1")else:num1, num2, string, i = 1, 1, "1 1 ", 0while True:i = i + 1if i % 2 == 0:num2 += num1if num2 > n:breakstring += str(num2) + " "else:num1 += num2if num1 > n:breakstring += str(num1) + " "print(string)5.判斷素數的函數
def prime(n):if n <= 1:return "1"num = int(n ** 0.5)for i in range(2,num + 1):if n % i == 0:return Falsereturn True6.定義并實現身體質量指數類
class BMI:def __init__(self,sName,iAge,fHeight,fWeight):self.name=sNameself.age=iAgeself.height=fHeightself.weight=fWeightdef getStatus(self):m=fWeight/(fHeight**2)if m<18:return ("超輕")elif m>=18 and m<25:return ("標準")elif m>=25 and m<27:return ("超重")else:return ("肥胖")def getBMI(self):n=fWeight/(fHeight**2)return n9.類的定義
class Pet:def __init__(self,Name,Age):self.Name=Nameself.Age=Agedef getName(self):return (self.Name)def getAge(self):return (self.Age)def setName(self,Name):self.Name=Namereturn (self.Age)def setAge(self,Age):self.Age=Agereturn (self.Age)def __str__(self):return self.Name + ' is ' + str(self.Age) + ' age!' class Fan:def __init__(self,speed=1,radius=5,color='white',on=False):self.__speed=speedself.__radius=radiusself.__color=colorself.__on=ondef getSpeed(self):if self.__speed==1:return 'SLOW'elif self.__speed==2:return 'MEDIUM'else:return 'FAST'def geton(self):if self.__on:return 'on'else:return 'off'def getradius(self):return self.__radiusdef getcolor(self):return self.__colordef setSpeed(self,speed):self.__speed=speeddef setOn(self,on):self.__on=ondef setRadius(self,radius):self.__radius=radiusdef setColor(self,color):self.__color=colordef __str__(self):return 'speed ' + str(self.__speed) +'\n' +'color '+self.__color + '\n'+'radius '+str(self.__radius)+'\n'+'fan is '+str(self.geton())總結
- 上一篇: 巴贝奇的困境 by: 天涯ID--先生会
- 下一篇: 复旦计算机学硕上岸,复旦大学工程与应用技