python基础与高级特性(一):python概述(练习)
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 1bb8c 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('游戏胜利') break
7.输入两个数值, 求两个数的最大公约数和最小公倍数.
- 最大公约数就是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))
- python基础与高级特性(二):字符串(练习)
- python基础与高级特性(七、八):(练习)
- python基础与高级特性(三):列表与元组(练习)
- Python3 基础:高级特性-列表生成式和生成器
- Python3 基础:高级特性- 迭代器
- python基础与高级特性(三):列表和元组
- python基础-对象高级特性
- 廖雪峰Python的研读笔记(一) Python基础、函数、高级特性
- python基础与高级特性(七):高级特性
- Python学习1——基础、函数、高级特性
- python基础与高级特性(八):模块与包
- python基础3之函数高级特性
- python基础知识(二)python高级特性
- Python基础——高级特性
- Python3 基础:高级特性-切片和迭代
- python基础与高级特性(五):函数
- Python入门基础之高级特性(四)
- Python基础-高级特性-切片(Slice)
- 温故知新python3--基础知识3(函数高级特性)
- python基础知识5(集合,高级特性,高阶函数)