正规做网站超八成搜索网站存在信息泄露问题
实验0:猜数字游戏
- 1. 猜数字游戏 版本1
- 2. 猜数字游戏 版本2
- 3. 猜数字游戏 版本3
- 4. 猜数字游戏 版本4
1. 猜数字游戏 版本1
- 题目
猜数字游戏。在程序中预设一个0-9之间的整数, 让用户通过键盘输入所猜的数, 如果大于预设的数,显示“你猜的数字大于正确答案”: 小于预设的数,显示“你猜的数字小于正确答案”, 如此循环,直至猜中该数,显示“你猜了N次,猜对了,真厉害”, 其中N是用户输入数字的次数。
- 题目分析
- 要实现用户输入数字进行比较大小的功能
- 要实现判断是否输入的内容为数字
- 要实现判断用户输入的内容是否为0-9之间数
- 第一次作答
# 1. guess_game.py 自己写的answer = 1 times = 1 guess_int = 100 while (not answer == guess_int):# 把判断int和正确区域放在里边,以便于刷新guess_intis_int = Falseis_correct_area = Falseguess = input("请猜一个0-9之间的整数:")# 判断是否为0-9之间的数字while (not is_correct_area):# 利用try-except将字符型转换为int型while (not is_int):try:guess_int = int(guess)is_int = Trueexcept ValueError:guess = input("输入无效,不是一个整数,请再次输入:")if guess_int < 0 or guess_int > 9:guess = input("输入无效,不是0-9之间的整数,请再次输入:")is_int = Falseelse:is_correct_area = Trueprint(guess_int)# 进行比较大小# times作为记的次数times += 1if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(times-1))else:print("你猜的数字大于正确答案")if answer == guess_int:break
- 运行结果
请猜一个0-9之间的整数:你好 输入无效,不是一个整数,请再次输入:10 输入无效,不是0-9之间的整数,请再次输入:8 8 你猜的数字大于正确答案 请猜一个0-9之间的整数:3 3 你猜的数字大于正确答案 请猜一个0-9之间的整数:0 0 你猜的数字小于正确答案 请猜一个0-9之间的整数:1 1 你猜了4次,猜对了,真厉害 请按任意键继续. . .
- 第一次作答总结
- 第一个while的判断条件写的麻烦,直接就是
while True
就可以(not answer == guess_int
是按照文字意思但是计算机语言就是可以简写) - 把分析的三条功能分为三个独立的个体去看实际上可以合并起来写
- 由于前两个原因导致变量过于繁多
- 第一个while的判断条件写的麻烦,直接就是
- 运行结果
- 第二次作答
# 3. guess_game.py 第二次写answer = 3 N = 0 while True:try:guess_int = int(input("请输入0-9之间的数字:"))if 0 <= guess_int <= 9:N += 1# 注意N要放在合格变量的里边if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:print("你猜的数字大于正确答案")else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")
- 运行结果
请输入0-9之间的数字:你好 输入格式错误请再次输入。 请输入0-9之间的数字:10 输入的范围错误请重新输入。 请输入0-9之间的数字:8 你猜的数字大于正确答案 请输入0-9之间的数字:1 你猜的数字小于正确答案 请输入0-9之间的数字:7 你猜的数字大于正确答案 请输入0-9之间的数字:5 你猜的数字大于正确答案 请输入0-9之间的数字:4 你猜的数字大于正确答案 请输入0-9之间的数字:3 你猜了7次,猜对了,真厉害 请按任意键继续. . .
- 第二次作答总结
- 计数变量N需要放在合格变量里边否则输入错误变量之后也会计数
- try-except
- 运行结果
- chatgpt答案
# 0.guess_game.py chatgptanswer = 5 # 你预设的正确答案 times = 0 while True:guess = input("请猜一个0-9之间的整数:")try:guess_int = int(guess)if 0 <= guess_int <= 9:times += 1 # 统计猜的次数if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int > answer:print("你猜的数字大于正确答案")else:print(f"你猜了{times}次,猜对了,真厉害")breakelse:print("输入无效,不是0-9之间的整数,请再次输入")except ValueError:print("输入无效,不是一个整数,请再次输入")
- 运行结果
请猜一个0-9之间的整数:你好 输入无效,不是一个整数,请再次输入 请猜一个0-9之间的整数:10 输入无效,不是0-9之间的整数,请再次输入 请猜一个0-9之间的整数:5 你猜了2次,猜对了,真厉害 请按任意键继续. . .
- 运行结果
2. 猜数字游戏 版本2
- 题目
猜数字游戏续。 改编1中的猜数字游戏, 让计算机能够随机产生一个预设数字, 范围在0-100之间,其他游戏规则不变。
- 作答
# 1. guess_game.py 自己写的import randomanswer = random.randint(0, 100) N = 0 while True:try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1# 注意N要放在合格变量的里边if guess_int < answer:print("你猜的数字小于正确答案")elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:print("你猜的数字大于正确答案")else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")
- 运行结果
请输入0-100之间的数字:你好 输入格式错误请再次输入。 请输入0-100之间的数字:110 输入的范围错误请重新输入。 请输入0-100之间的数字:50 你猜的数字小于正确答案 请输入0-100之间的数字:75 你猜的数字小于正确答案 请输入0-100之间的数字:85 你猜的数字大于正确答案 请输入0-100之间的数字:80 你猜的数字小于正确答案 请输入0-100之间的数字:83 你猜了6次,猜对了,真厉害 请按任意键继续. . .
3. 猜数字游戏 版本3
- 题目
猜数字游戏再续。 用变量maxtimes设置允许猜数字的最大次数 (比如最多只允许猜6次maxtimes=6) 并在猜错后提示还有几次机会。 用for循环改写整个程序,并提交。 (提示,猜对后可使用break跳出循环)
- 用while循环(没按照要求)
# 1. guess_game.py 自己写的(while循环增加判断功能的代码)import randomanswer = random.randint(0, 100) N = 0 maxtimes = 6 while True: # 改为for循环,但是由于for循环一旦开始就无法改变循环次数,需要进行改变,要有前提条件猜对了才算次数try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1if guess_int < answer:if N == maxtimes: # 由于不想增加while循环的次数所以在这里增加判断break的条件,也可以在下一次循环的时候增加判定break的条件,会减少几行代码print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:if N == maxtimes:print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N))else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")
- 运行结果
请输入0-100之间的数字:你好 输入格式错误请再次输入。 请输入0-100之间的数字:10000 输入的范围错误请重新输入。 请输入0-100之间的数字:10 你猜的数字小于正确答案,你还有5次机会。 请输入0-100之间的数字:50 你猜的数字小于正确答案,你还有4次机会。 请输入0-100之间的数字:30 你猜的数字小于正确答案,你还有3次机会。 请输入0-100之间的数字:303 输入的范围错误请重新输入。 请输入0-100之间的数字:2 你猜的数字小于正确答案,你还有2次机会。 请输入0-100之间的数字:1 你猜的数字小于正确答案,你还有1次机会。 请输入0-100之间的数字:0 次数用尽了,最终答案是92 请按任意键继续. . .
- 用for循环少了两个功能
# 2. guess_game.py for循环没有检查格式的代码 import randomanswer = random.randint(0, 100) N = 0 maxtimes = 6 for i in range(maxtimes):guess = int(input("请输入0-100之间的数字:"))N += 1if guess < answer:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess == answer:print("你猜了{}次,猜对了,真厉害".format(N))else:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N)) if N == maxtimes and guess != answer: # 代码少但是输出格式不美化print("次数用尽了,最终答案是{}".format(answer))
- 运行结果
请输入0-100之间的数字:2 你猜的数字小于正确答案,你还有5次机会。 请输入0-100之间的数字:3 你猜的数字小于正确答案,你还有4次机会。 请输入0-100之间的数字:4 你猜的数字小于正确答案,你还有3次机会。 请输入0-100之间的数字:5 你猜的数字小于正确答案,你还有2次机会。 请输入0-100之间的数字:6 你猜的数字小于正确答案,你还有1次机会。 请输入0-100之间的数字:7 你猜的数字小于正确答案,你还有0次机会。 次数用尽了,最终答案是23 请按任意键继续. . .
4. 猜数字游戏 版本4
- 题目
猜数字游戏之续了又续。 为了增加代码的复用性, 将猜数字游戏封装为函数GuessSecret(maxtimes), 将允许猜数字的最大次数maxtimes作为参数。 在调用GuessSecret时允许用户自己设置maxtimes,美化程序的输出界面。
- 作答
# 1. guess_game.py 自己写的 import randomdef GuessSecret(maxtimes):answer = random.randint(0, 100)N = 0while True: # 改为for循环,但是由于for循环一旦开始就无法改变循环次数,需要进行改变,要有前提条件猜对了才算次数try:guess_int = int(input("请输入0-100之间的数字:"))if 0 <= guess_int <= 100:N += 1if guess_int < answer:if N == maxtimes: # 由于不想增加while循环的次数所以在这里增加判断break的条件,也可以在下一次循环的时候增加判定break的条件,会减少几行代码print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字小于正确答案,你还有{}次机会。".format(maxtimes-N))elif guess_int == answer:print("你猜了{}次,猜对了,真厉害".format(N))breakelse:if N == maxtimes:print("次数用尽了,最终答案是{}".format(answer))breakelse:print("你猜的数字大于正确答案,你还有{}次机会。".format(maxtimes-N))else:print("输入的范围错误请重新输入。")except ValueError:print("输入格式错误请再次输入。")maxtimes = int(input("请输入允许猜的最大次数:")) GuessSecret(maxtimes)
流程图过两天更新