1.需求: 输入某学生的三门课程成绩,计算出该学生的总成绩sumScore和平均成绩avg_score(保留两位小数点)。 提示: (course1+course2+course3)/3
name = input('姓名:') score1 = float(input('请输入你的成绩:')) score2 = float(input('请输入你的成绩:')) score3 = float(input('请输入你的成绩:')) #2.计算出该学生的总成绩和平均成绩 sumscore = score1+score2+score3 avgscore = sumscore / 3 #3.输出该学生的成绩并保留两位小数 print('%s的总成绩为%.2f' % (name,sumscore)) print('%s的平均成绩为%.2f' % (name,avgscore))2.编写程序将温度从华氏温度转换为摄氏温度。转换公式为celsius * 1.8 = fahrenheit - 32
fahrenheit =float(input('请输入华氏温度:')) celsius = (fahrenheit-32)/1.8 print('%s摄氏温度:' %(celsius))3.需求: 判断给定年份是否是闰年? 规则: 一个闰年就是指它可以被 4 整除,但不能被 100 整除, 或者它既可以被 4 又可以被 100 整除。 解释: year能被4整除但是不能被100整除 或者 year能被400整除, 那么就是闰年; 测试用例: 1992,1996 和 2000 年是闰年,但 1967 和 1900 则不是闰年。(and, or, not)
year = int(input('请输入年份:')) if (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0): print('%s是闰年' %(year)) else: print('%s不是闰年' %(year))4. 需求1: 求1~100之间所有偶数的和; 需求2: 求1~100之间所有奇数的和; 需求3: 用户输入一个整形数, 求该数的阶乘; 3!=321=6
需求1: 求1~100之间所有偶数的和 sumResult = 0 #保存累加结果的变量 odds = range(0, 101, 2) for item in odds: sumResult += item print(sumResult) 需求2: 求1~100之间所有奇数的和 sum_result = 0 adds = range(1, 101, 2) for item in adds: sum_result += item print(sum_result) #需求3: 用户输入一个整形数, 求该数的阶乘; 3!=3*2*1=6 num = int(input('请输入需要求阶乘的数字:')) if num == 0: print(1) elif num < 0: print('请输入正确的数字,number>0') else: factResult = 1 nums = range(1, num+1) for item in nums: factResult *= item print(factResult)5.用户登陆程序需求: 1. 输入用户名和密码; 2. 判断用户名和密码是否正确? name=‘root’ passwd=‘westos’ 3. 为了防止暴力破解, 登陆仅有三次机会, 如果 超过三次机会, 报错提示;
提升: 密码能不能明文存储? 为什么?如何解决?
import getpass tryCount = 0 while tryCount < 3: tryCount += 1 user_name = input('请输入用户名:') user_passwd = getpass.getpass('请输入密码:') if user_name == 'root' and user_passwd == 'westos': print('登陆成功请稍等') flag = 1 break else: print('登陆失败,你已经尝试%d' %(tryCount)) else: print('尝试超过三次')6.有猜数字游戏,其游戏规则为: 1). 程序内置一个 1 到 100 之间的数字作为猜测的结果,由用户猜测此数字(仅5次机会)。 2). 用户每猜测一次,由系统提示猜测结果:大了、小了或者猜对了; 3). 直到用户猜对结果,则提示游戏胜利。用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0,或者超过5次机会,则游戏失败。
gameResult = 26 guessnum = int(input('请输入数字:')) tryCount = 0 while tryCount < 6: tryCount += 1 if guessnum == 0: print('游戏失败') break if guessnum < gameResult: print('小了') break elif guessnum > gameResult: print('大了') break else: print('游戏胜利') break7.输入两个数值, 求两个数的最大公约数和最小公倍数.
最大公约数就是A和B能整除的最大的数;求最大公约数(gys)算法:(40, 60) = 20 #定义函数 #求最大公约数 def gys(num1: int, num2: int) -> int: minNum = num2 if num1 > num2 else num1 #minNum = min(num1, num2) for num in range(minNum, 0, -1): if num1 % num == 0 and num2 % num ==0: return num #求最小公倍数 def lcm(num1: int, num2:int) -> int: lcmNum = num1 *num2 / gys(num1,num2) return int(lcmNum) if __name__ == '__main__': print(gys(2,3)) print(gys(2,6)) print(gys(6,8)) print(lcm(40,60))8.求取x的平方根
import math def mySqrt(x:int)->int: if x == 1: return 1 num = 1 while num**2 <= x: num += 1 return num -1 print(mySqrt(4)) print(mySqrt(8))9.利用math的sqrt()方法取平方根
import math def get_root(a, b, c): delta = pow(b, 2) -4 * a * c if delta == 0: x1 = (-b + math.sqrt(delta)) / 2 * a return x1 elif delta > 0: x1 = (-b + math.sqrt(delta)) / 2 * a x1 = (-b - math.sqrt(delta)) / 2 * a return x1, x2 else: print('没有根') a = int(input('a = ')) b = int(input('b = ')) c = int(input('c = ')) print(get_root(a, b, c))