Day1-----for、while循环训练

目录

循环部分

题目1 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目2 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目3 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 4 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 5 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 6 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 7 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 8 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目 9 [综合训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案


循环部分

题目1 [加强训练]

题干

设计"过7 游戏” 程序,即在 1- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过...", 否则输出 具体的数字.

训练目标

  • while 循环的使用
  • 运算符的使用

训练提示

  • 如何取得 1-99 之间的数字
  • 如何判断一个数是7的倍数
  • 如何判断一个数是否包含 数字 7

参考方案

  • 使用循环获取 1-99 之间的数字
  • 判断一个数是否是 7 的倍数,即能否被 7 整除,在 python 可以使用% 运算符
  • 判断一个数字是否包含 7,可能个位是 7,也可能是十位数字是 7
    • 判断个位 ,使用 num % 10 == 7
    • 判断十位,使用 num // 10 == 7

操作步骤

  • 使用循环得到 1 - 100 之间的数字
  • 判断是否是 7 的倍数和包含 7

参考答案

i = 1
# 使用循环得到 1-100 之间的数字
while i < 100:
    # 判断是否是 7 的倍数和包含 7 , 两者之间是或的关系,满足一个即输出过
    if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):
        print('过...')
    else:
        # 不是 7 的倍数,也没有包含 7,直接输出数字
        print(i)
    # 一个数字判断结束之后,改变 i 的值
    i += 1

题目2 [加强训练]

题干

编写代码模拟用户登陆。要求:用户名为 python,密码 123456,如果输入正确,打印“欢迎光临”,程序结束,如果输入错误,提示用户输入错误并重新输入

训练目标

  • while中的break的使用

训练提示

  • 定义变量,用户名和密码采用什么格式存储
  • 循环没有次数限制,那么我们使用while循环的时候条件是什么?
  • 判断用户名和密码是否相同,我们的条件采用“or"还是“and”?
  • break的作用是什么

参考方案

  • 首先我们要自己定义用户名和密码保存
  • 如果用户错误那么就需要重新循环,我们就需要采用什么方式进行循环?
  • 提示用户输入信息
  • 判断输入信息,根据不同的结果进行不同的执行方式

操作步骤

  • 定义名户名和密码分别为name = "python",pwd = "123456"
  • 使用循环,循环条件是True
  • 提示用户输入用户名和密码
  • 判断用户名和密码是否正确
  • 如果正确跳出循环,不正确提示输入错误

参考答案

name = "python"
pwd = "123456"
while True:
    user_name = input("请输入用户名:")
    user_pwd = input("请输入密码:")
    if user_name == name and user_pwd == pwd:
        print("欢迎光临")
        break
    else:
        print("用户输入错误!")

题目3 [加强训练]

题干

猜数字游戏:电脑产生(1-100)的随机数,用户进行猜测,直到猜中为止。

  1. 如果猜中,输出:恭喜你猜中了,数字是 xx。
  2. 如果猜的数字大,输出:猜测的数字太大了,继续加油
  3. 如果猜测的数字小,输出:猜测的数字有点小,再来一次

训练目标

  1. while 语法的使用
  2. break 的使用
  3. continue 的使用

训练提示

  1. 电脑产生随机数,Python 中使用什么函数呢?
  2. 如何接收用户输入的数据呢?接收到的数据类型是什么呢?
  3. 如何判断用户输入的数据和电脑产生的数据大小关系呢?
  4. 如何重复的进行判断呢?那些部分需要重复呢?
  5. 结果判断后,该怎么操作呢?

参考方案

  1. 使用random.randint()产生随机数
  2. input()\`接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;
  3. 判断数据大小,使用 ==><
  4. 重复即循环,循环可以使用 while, 用户的输入和判断需要重复,电脑产生的随机不需要
  5. 如果相等,直接输出,并 break, 其余的情况输出相应的内容,并 continue。

操作步骤

  1. 通过 import random导入随机数模块,使用random.randint()产生随机数。
  2. input()\`接收用户输入的数字,并转换数据类型为int;
  3. 判断用户的输入和电脑产生的数字之间的关系,即:相等、大于和小于。
  4. 用户的输入和判断,输出重复执行的代码,需要放在循环中

参考答案

import random

# 电脑产生随机数
num = random.randint(1, 100)

while True:
    # 提示让用户输入
    my_num = int(input("请输入1-100之间的整数:"))
    if my_num == num:
        print("恭喜你猜中了,数字是%d" % num)
        break
    elif my_num > num:
        print("猜测的数字太大了,继续加油")
        continue  # 本代码中可以不写
    else:
        print("猜测的数字有点小,再来一次")

题目 4 [加强训练]

题干

猜数字游戏:电脑产生(1-100)的随机数,用户进行猜测。

  1. 如果猜中,输出:恭喜你猜中了,数字是 xx,猜测了xx次。
  2. 如果猜的数字大,输出:猜测的数字太大了,继续加油
  3. 如果猜测的数字小,输出:猜测的数字有点小,再来一次
  4. 如果猜测5 次,还没有猜测出来,输出:太弱了,测试5次还没猜出来,不和你玩了

训练目标

  1. while 语法的使用
  2. break 的使用
  3. continue 的使用
  4. while else 的使用

训练提示

  1. 电脑产生随机数,Python 中使用什么函数呢?
  2. 如何接收用户输入的数据呢?接收到的数据类型是什么呢?
  3. 如何判断用户输入的数据和电脑产生的数据大小关系呢?
  4. 如何重复的进行判断呢?那些部分需要重复呢?
  5. 结果判断后,该怎么操作呢?
  6. 如何记录用户输入了几次?
  7. 循环没有被 break 结束,想要输出内容怎么操作?

参考方案

  1. 使用random.randint()产生随机数
  2. input()\`接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;
  3. 判断数据大小,使用 ==><
  4. 重复即循环,循环可以使用 while, 用户的输入和判断需要重复,电脑产生的随机不需要
  5. 如果相等,直接输出,并 break, 其余的情况输出相应的内容,并 continue。
  6. 定义变量记录猜测的次数
  7. 达到猜测的次数后,没有猜到使用 while else结构输出内容

操作步骤

  1. 通过 import random导入随机数模块,使用random.randint()产生随机数。
  2. input()\`接收用户输入的数字,并转换数据类型为int;
  3. 判断用户的输入和电脑产生的数字之间的关系,即:相等、大于和小于。
  4. 用户的输入和判断,输出重复执行的代码,需要放在循环中
  5. 书写 else 的内容

参考答案

import random

# 电脑产生随机数
num = random.randint(1, 100)
# 记录用户输入的次数
count = 0

while count < 5:
    # 提示让用户输入
    my_num = int(input("请输入1-100之间的整数:"))
    count += 1
    if my_num == num:
        print("恭喜你猜中了,数字是%d, 猜测了%d次" % (num, count))
        break
    elif my_num > num:
        print("猜测的数字太大了,继续加油")
        continue  # 本代码中可以不写
    else:
        print("猜测的数字有点小,再来一次")
else:
    print("太弱了,猜测5次还没猜出来,不和你玩了")

题目 5 [加强训练]

题干

请用户输入一个数,使用while计算是否为素数(素数只能被 1 和本身整除)

训练目标

  • while...else的使用

训练提示

  • 什么是素数?
  • 如何判断?
  • 什么情况下执行“else”语句

参考方案

  • 需要将输入的数字从2开始判断一直到本身
  • 除了1和本身如果可以被整除,那么就不是素数,直接跳出循环
  • 如果不能全部整除,那么执行else语句

操作步骤

  • 接收一个变量“num”,并且转型为“int”类型,用于计算
  • 定义变量 “i = 2”用来计算
  • 使用while循环取值2~num
  • 判断是否为素数,如果可以整除那么就不是素数,直接退出循环,如果不能整除,那么继续判断下一个数
  • 如果全部判断完成则执行“else”输出当前输入的“num”是一个素数

参考答案

num = int(input("请输入一个数字:"))
if num == 1 or num == 0:
    print("%d 不是素数也不是合数" % num )
else:
    i = 2
    while i < num:
        if num % i == 0:
            print("%d不是素数"%num)
            break
        i += 1
    else:
        print("%d是素数"%num)

题目 6 [加强训练]

题干

要求用户输入一个字符串,遍历当前字符串并打印,如果遇见“q”,则跳出循环。如果遇见“ ”(空格)则跳过当前输出。

训练目标

  • for循环的基本使用
  • break的作用
  • continue的作用

训练提示

  • for 循环的基本语法是什么
  • for循环的作用是什么
  • break的作用?
  • continue的作用?

参考方案

  • 使用for循环遍历当前字符串
  • 判断每一字符是什么进行操作

操作步骤

  • 提示用户输入字符串
  • 便利当前字符串
  • 如果是“q”则退出,如果是“ ”(空格)则跳过本次循环
  • 打印字符

参考答案

input_str = input("请输入一个字符串:")
for i in input_str:
    if i == "q":
        break
    elif i == " ":
        continue
    print(i)

题目 7 [加强训练]

题干

使用for循环计算1 - 100 之间的累加和

训练目标

range()的使用

训练提示

  • range()方法的作用
  • for循环如何使用
  • 累加重新辅助

参考方案

  • 使用for寻遍遍历0~100
  • 进行累加重新赋值

操作步骤

  • 定义变量sum,初始化sum=0
  • 遍历0~100的所有的值
  • 进行累加和

参考答案

sum = 0
for i in range(101):
    sum += i
print(sum)

题目 8 [加强训练]

题干

请用户输入一个数,使用for循环计算是否为素数(素数只能被 1 和本身整除)

训练目标

for...else是使用

训练提示

  • range生成2~num的可迭代对象
  • for...else的使用场景,什么时候执行else

参考方案

  • 使用for循环
  • range生成2~num的可迭代对象
  • 判断是否为素数

操作步骤

  • 定义变量,接收一个数字
  • 定义初始循环的值为2
  • 判断是否是素数如果可以整除那么就不是素数,直接退出循环,如果不能整除,那么继续判断下一个数
  • 如果全部判断完成则执行“else”输出当前输入的“num”是一个素数

参考答案

num = int(input("请输入一个数字:"))
if num == 1 or num == 0:
    print("%d 不是素数也不是合数" % num )
else:
    for i in range(2,num):
        if num % i == 0:
            print("%d不是素数" % num)
            break
    else:
        print("%d是素数"%num)

题目 9 [综合训练]

题干

分别使用for循环和while循环,求100~200的所有素数

训练目标

  • 循环嵌套的使用
  • if条件判断
  • while...else for...else的使用场景

训练提示

  • 题目8和题目5分别使用for和while循环判断一个值是否为素数
  • 增加外层循环

参考方案

  • 采用循环嵌套形式判断每一个值
  • 参考题目10和题目7

操作步骤

  • 确定循环次数
  • 内层循环判断里面的每一个数是否为素数
  • 如果不是break跳出本次循环,如果是那么都判断完成后执行else语句
  • while循环注意自增问题

参考答案

# 定义初始值
num = 100
# 外层循环控制100 到 200 的值
while num <= 200:
    # 判断一个数据是否是素数,从2开始整除到数据值-1为止,如果可以整除,则不是素数
    i = 2
    # 内层循环控制除数
    while i < num:
        # 判断是否可以被整除
        if num % i == 0:
            # 可以被整除,则不是素数
            print("%d不是素数" % num)
            # 装置内层循环,不需要再判断
            break
        # 改变i 的值
        i = i + 1
    else:
        # 内层循环结束,没有被break终止,则说明是素数
        print("%d是素数" % num)
    # 内层循环结束,当前数据判断结束,继续下一个数据判断
    num = num + 1

# 外层循环控制100 到 200 的值
for num in range(100, 201):
    # 判断一个数据是否是素数,从2开始整除到数据值-1为止,如果可以整除,则不是素数
    # 内层循环控制除数
    for i in range(2, num):
        # 判断是否可以被整除
        if num % i == 0:
            # 可以被整除,则不是素数
            print("%d不是素数" % num)
            # 装置内层循环,不需要再判断
            break
    else:
        # 内层循环结束,没有被break终止,则说明是素数
        print("%d是素数" % num)
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小步调LLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值