ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python循环练习题(九九乘法表、寻找水仙花数、寻找完美数、猜数字游戏、百钱买百鸡)

2019-05-28 20:49:22  阅读:206  来源: 互联网

标签:练习题 约数 九九乘法 寻找 range 循环 print 100 水仙花


猜数字游戏

计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了,并继续输入
关于这一题,因为不知道循环的次数和迭代对象,所以选择while循环
1、首先用random.randint定义一个随机数
2、第一次写的时候把输入的答案放在循环外面,后来想了一下,如果要根据提示再继续输入的话就必须把要每次输入的数字放入循环中,否则无法循环输入
3、break在循环里面的作用很重要,注意思考该把他放在哪儿。

import random
a = random.randint(1,100)
count = 0
while True:
    b = int(input("请输入您的答案:"))
    count += 1
    if a <b:
        print("小一点")
    elif a>b:
        print("大一点")
    else:
        print("猜对了,您一共猜了%d次"% count)
        break

九九乘法表

for i in range(1,10):
    for j in range(1,10):
        print('%d × %d = %d'%(i,j,i*j))

寻找水仙花数

如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

for i in range(100,1000):
    if (i//100)**3 + (i%100//10)**3 +(i%10)**3 ==i:
        print('%d是水仙花数'%i)

寻找完美数

果一个数恰好等于它的因子之和,则称该数为“完全数” [1] 。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number)。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6

for i in range(1,10000):
    a = []
    b = 0
    for j in range(1,i):
        if i%j == 0:
            a.append(j)
    for m in a:
        b += m
    if b == i:
        print("%d是完美数"%i)
            

此题循环的嵌套还是比较细致的。
1、首先求约数的循环要嵌套在外层循环中,这是求各种数时候常用的套路。
2、因为它的约数非常多,所以我的想法是先把约数全存在一个表中,再利用一个遍历循环加起来,可以得到约数之和,然后在判断约数之和和数是否相等
3、本来把a ,b定义在最外侧,后来发现这样的不出来正确答案。后来在别人的帮助下才发现,a和b在第二次循环的时候把第一次循环的值保存了下来,导致结果错误。

百钱买百鸡

print('公鸡\t母鸡\t鸡仔')
for x in range(0,20):
    for y in range(0,33):
        if 3x+5y+(100-x-y)/3=100:
            print(x,"\t",y,"\t",(100-x-y))

在这题里面了解到了制表符的妙用
1、公鸡5钱1个,母鸡3钱1个,总共100钱,那么公鸡最多买20,母鸡最多买33,实际上买不到,只是给它限制住循环的条件
2、鸡仔1钱3个,且鸡仔可以通过x和y表示,把方程和约束条件写出来,让程序给出排列,此题非常有参考意义。
3、制表符可以保证有着上下打印的东西在一般情况保持对齐,打印的时候,如果是变量就不能像字符串一样用+来拼接。****

标签:练习题,约数,九九乘法,寻找,range,循环,print,100,水仙花
来源: https://blog.csdn.net/cpc784221489/article/details/90640028

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有