python练习题|python基础20道小练习


python基础20道小练习

  • 1. 输入三个数,将这三个数从小到大输出
  • 2. 分数判断
  • 3. 猜数字游戏
  • 4. 一张纸厚度约为001mm,对折多少次后可以达到珠穆朗玛峰的高度?
  • 5. 短信计费
  • 6. 水仙花数
  • 7. 鸡兔有35头,94足,求鸡和兔分别多少只?
  • 8. 反转一个三位数
  • 9. 素数
  • 10. 直角三角形
  • 11. 等腰三角形
  • 12. 乘法口诀表
  • 13. 猴子摘桃
  • 14. 小球问题
  • 15. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前 20 项之和。
  • 16. 世纪闰年和普通闰年
  • 17. 判断输入的日期是今天的第几天
  • 18. 将一个正整数分解质因数
  • 19. 完数
  • 20. 回文数

1. 输入三个数,将这三个数从小到大输出
a = int(input("请输入第1个正整数:")) b = int(input("请输入第2个正整数:")) c = int(input("请输入第3个正整数:")) if(a > b): a = b if(a > c): a = c print(a)

【python练习题|python基础20道小练习】python输入三个数,将这三个数从小到大输出
2. 分数判断
score = int(input('输入分数:')) if score >= 90: grade = '优秀' elif score >= 80: grade = '良好' elif score >= 60: grade = '中等' else: grade = '差' print('%d分 %s' % (score,grade))

3. 猜数字游戏 数字猜谜游戏:
猜大了提示:猜的数字大了 猜小了提示:猜的数字小了 猜正确停止

分析:猜正确停止,那就是使用到while循环了。
number = 5 a = 0 print('欢迎进入猜数字游戏') while a != number: a = int(input('请输入你要猜的数字')) if a == number: print('恭喜你,猜对了') elif a < number: print('猜小了') elif a > number: print('猜大了') else: print('好好玩哦~')

python分支结构小案例
4. 一张纸厚度约为001mm,对折多少次后可以达到珠穆朗玛峰的高度?
i = 0.08 count = 0 while i <= 8844000: count += 1 i *= 2 print('折'+str(count)+'次')

while循环
5. 短信计费 用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个子以内(包括70个字)。
如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信,假设已经知道你当月所发送的短信的次数与字数,试统计一下你当月的短信的总资费。
输入:
整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。
输出:
当月短信总自费,单位为元,精确到小数点后1位。
import math # 导入模块 money = 0 a = [] b = int(input("请输入总次数:")) for i in range(1,b+1): c = int(input("请输入第"+str(i)+"次的字数:")) a.append(c)for x inrange (len(a)): if(a[x] <= 70): money += 1 if(a[x] > 70): z = math.ceil(a[x] / 70) money += z print(money*0.1)

for循环
6. 水仙花数 判断一个三位数是否为水仙花数
a = eval(input("请输入一个数字")) bw = a // 100# 整除获得百位数("//" 表示整除,比如 3//2=1; "/" 表示浮点运算,比如3/2=1.5) sw = a // 10 % 10# 或者b = (i % 100) // 10 gw = a % 10 s = pow(gw, 3) + pow(sw, 3) + pow(bw, 3) if (s == a): print(a, end="") print("是水仙花数!") else: print(a, end="") print("不是水仙花数")

python水仙花数
7. 鸡兔有35头,94足,求鸡和兔分别多少只?
for j in range(36): for t in range(36): if (j * 2 + t * 4 == 94 and j + t == 35): print('有{}只鸡,有{}只兔'.format(j,t))

python穷举法
8. 反转一个三位数
a = int(input('请输入一个数字:')) bw = a // 100 sw = a % 100 // 10 gw = a % 10 reverse = gw * 100 + sw * 10 + bw print(reverse)

python反转一个三位数
9. 素数
def IsSu(m): if m == 1: return false for i in range(2,m): # 遍历2,3,4,5,6....m-1,都放在i中,如果m除i等于0 则为素数 if m % i == 0: return False # 不是素数 else: return True#是素数while True: a = int(input("请输入一个素数:")) if IsSu(a): print("是素数") else: print("不是素数")

10. 直角三角形
for i in range(1,7): for j in range(i): print("*",end="") print()

11. 等腰三角形
for i in range(1,5):# range(5),输出4行 for j in range(1,4 - i + 1): # 空格数:行数减一,这里为什么加1?请注意range()的取值范围 print(" ",end="") for j in range(1,i + 1): # 正着的数:行数 print(j ,end="") for j in range(i-1,0,-1): # 倒着的数:行数减一 print(j,end="") print()

12. 乘法口诀表
for i in range(1,10): for j in range(1,i+1): print(str(j) + "*" + str(i) + "=" + str(i*j),end=" ") print()

for i in range(1,10): for j in range(1,i+1): print('{}*{}={}'.format(j,i,(i*j)),end=' ') print()

13. 猴子摘桃
a = 1 # 第十天剩下桃子的数量 for i in range(9,0,-1): a = (a + 1)* 2 print("猴子第"+str(i)+"天有"+str(a)+"个桃子")

14. 小球问题 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在第 10 次落地 时,共经过多少米?第 10 次反弹多高?
sum = 100 a = sum / 2 for i in range(2,11): sum += 2 * a a /= 2print("共经过"+str(sum)+"米") print("第 10 次反弹"+str(a)+"米")

15. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前 20 项之和。
a = 2 b = 1 c = 0 print("2/1") for i in range(1,20): c = a + b b = a a = c print(str(a)+"/"+str(b))

16. 世纪闰年和普通闰年
year = int(input('请输入一个年份:')) if(year % 4 == 0): if(year % 100 == 0): if(year % 400 == 0): print('{0}是世纪闰年'.format(year)) else: print('{0}不是闰年'.format(year)) else: print('{0}是普通闰年'.format(year)) else: print('{0}不是闰年'.format(year))

17. 判断输入的日期是今天的第几天
year = int(input('请输入年份')) month = int(input('请输入月份')) day = int(input('请输入今天的日期')) date = [31,29,31,30,31,30,31,31,30,31,30,31] count = day # 这个月一共有多少天 if(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0): print('{0}是闰年'.format(year)) date[1] = 29 else: print('{0}不是闰年'.format(year)) date[1] = 28for i in range(month - 1): count += date[i] x = date[month-1] print('本月一共有{0}天'.format(x)) print('{0}年{1}月{2}日是今年的第{3}天'.format(year,month,day,count))

python判断闰年
18. 将一个正整数分解质因数 例如输入90,输出:90=233*5
对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>i,但n能被i整除,则应打印出i的值,并用n除以i的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被i整除,则用i+1作为i的值,重复执行第一步。
n = int(input("请输入一个数:")) print(n,'=',end="") i = 2 while i <= n: if i == n: print(i, end="") break elif n % i == 0: print(i, end="*") n = n / i else: i += 1

19. 完数 题目: 输出1000以内的完数,并统计完数的个数
一个数等于它的因子之和,这个数就被称为完数,例如:6 = 1 + 2 + 3,6的因子为:1,2,3
n = 0 # 完数个数 for a in range(1,1001): list=[] for b in range(1,a): if a % b == 0:# 把因子找出来,放进列表中 list.append(b) if a == sum(list): print(a) n +=1 print("1000以内的完数有"+str(n)+"个")

20. 回文数 比如:123321,它们的第一位和最后一位都相同,第二位和倒数第二位相同
n = input("请输入数字") a = 0 b = len(n)-1 # 长度减一,去掉中间的一个数字 flag = True while a < b: if n[a] != n[b]: # 下标来判断是否相等 print("不是回文数") flag = False break # print(a,b) a,b = a+1,b-1 if flag: print("是回文数")

    推荐阅读