【训练1-循环相关】

选择习题

以下选项符合Python语法要求且能够正确执行的是(B)
A min=x if x<y =y
B min=x if x<y else y
C if(x>y) print(x)
D min=x >y?x:y
注释:这是一个条件表达式,if-else。x<y的时候把x赋值给min,求最小值,如果x<y为False的时候,把y赋值给min

实战一、输入一个年份,判断是否为闰年

需求:从键盘获取一个四位的整数年份,判断其是否为闰年,闰年的判断条件为:能被4整除但不能被100整除,或者能被400整除。

//我的错误示范,没有正确运行,我只关注到了题本中提到的整除
year = eval(input("请输入一个四位的年份:"))
if year//4 and not year//100:
    print(year,"是闰年")
elif year//400:
    print(year,"是闰年")
else:
    print(year,"是平年")
// 正确解答,采用取余的方式,且可以在if语句中使用()and或or
year = eval(input("请输入一个四位的年份:"))
if (year%4==0 and year%100!=0) or year%400==0:
    print(year, "是闰年")
else:
    print(year, "是平年")

实战二 、模拟10086查询功能:

需求:输入1,显示当前余额;输入2,显示当前的剩余流量,单位为G;输入3,显示当前的剩余通话,单位为分钟;输入0,退出自助查询系统。

// 自己尝试解答,正常运行测试用例,但没关注到输入错误怎么处理
ye = input("请输入您的余额:")
l = input("请输入当前剩余流量:")
th = input("请输入当前剩余通话时间:")
print("---------欢迎使用10086查询系统---------------")
print("1、查看当前余额")
print("2、查看当前剩余流量")
print("3、查看当前剩余通话时间")
print("0、退出系统")
i = eval(input("请输入您当前要执行的操作:"))
answer = 'y'
while answer =='y':
    while i>=0 and i<4:
        if i==0:
            break
        elif i == 1:
            print("当前余额为",ye)
            break
        elif i == 2:
            print("当前剩余流量为",l,"G")
            break
        elif i == 3:
            print("当前剩余通话时间",th,"min")
            break
    if i==0:
        print("程序退出,谢谢您的使用")
        break
    answer=input("还继续操作么?y/n")
    if answer == "n":
        print("程序退出,谢谢您的使用")
        break
    i = eval(input("请输入您当前要执行的操作:"))
// 官方示例,没关注到y/n这部分,输入错误怎么处理
answer='y'
while answer == 'y':
    print("---------欢迎使用10086查询系统---------------")
    print("1、查看当前余额")
    print("2、查看当前剩余流量")
    print("3、查看当前剩余通话时间")
    print("0、退出系统")
    choice = input('请输入您当前要执行的操作:')
    if choice == '1':
        print("当前余额为213元")
    elif choice == '2':
        print("当前剩余流量为124GB")
    elif choice == '3':
        print('当前剩余通话时间2176min')
    elif choice == '0':
        print("程序退出,谢谢您的使用")
        break
    else:
        print("对不起,您输入的有误,请重新输入")
    answer = input("还继续操作么?y/n")
else:
    print("程序退出,谢谢您的使用")

实战3、使用嵌套循环输出九九乘法表

在这里插入图片描述

// 本人作答,正常运行,但占位置比较大
for i in range(1,10):
    for j in range(1,10):
        if i == j:
            print(i,"*",j,"=",i*j)
            break
        else:
            print(j,"*",i,"=",i*j,end="    ")
    print()
// 官方作答,采用打印菱形三角形那部分学到的内容,找i和内置j循环次数的关系,并且利用字符串连接的方式进行打印输出。end='\t'一个制表位,目的是为了让之间距离大一些
for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"*"+str(i)+'='+str(i*j),end="\t")
    print()

实战4、猜数游戏

需求:随机生成一个1~100之间的整数,然后用户循环猜这个数,对于用户的输入,可提示“大了”,“小了”,直到猜准为止,输出用户的猜测次数。
产生随机数的代码如下:

import random //这个随机数函数生成的数包含1也包含100
rand = random.randint(1,100)

本人作答,正常运行,不过运行测试了很久一直在矛盾break和continue的问题,我之前在每次if判断后加了break,当时想着结束本次循环,但其实每次都直接结束了整个程序。加了continue后,又会一直无限循环的打印"大了"。我忽略了一点,while本来就是一个循环语句,只需要在最后加入条件改变变量的语句,程序自然会进入下次循环的。

//本人作答,正常运行
import random
rand = random.randint(1,100)
print(rand)
s = 0
user = eval(input("在我心中有个数,1-100之间,请你猜一猜:"))
while user>0 and user<101:
    s += 1
    if user>rand:
        print("大了")
    elif user<rand:
        print("小了")
    else:
        print("猜对了!")
        print("还可以,共猜了",s,'次')
        break
    user = eval(input("在我心中有个数,1-100之间,请你猜一猜:"))
else:
    print("您输入超过有效范围,请重新输入1-100的数字")
// 官方作答
import random
rand = random.randint(1,100)
count = 1
while count<=10:
    number = eval(input("在我心中有个数,1-100之间,请你猜一猜:"))
    if number==rand:
        print("猜对了!")
        break
    elif number>rand:
        print("大了")
    else:
        print("小了")
    count += 1
if count<=3:
    print("真聪明!一共猜了",count,"次")
elif count<=6:
    print("还可以!一共猜了",count,"次")
else:
    print("猜的次数有点多啊!一共猜了", count,"次")
  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值