老师能不能帮忙看一下代码的问题,
来源:3-2 项目作业
今天也学习python
2020-02-12 17:26:37
import sys
import random
import datetime
a=0
n=0
print("{0}{1}{2}".format("*************************","欢迎进入数字猜猜猜小游戏","********************"))
i=(input("数字区间起始值:"))
j=(input("数字区间终止值:"))
lst=[i,j]
print("所产生的的随机数字区间为:[i,j]")
#l=random.randint(i,j)
def func(l):
number=list(filter(lambda i:i.isdigit(),lst))
if len(number)==2:
rand=random.randint(int(i),int(j))
return rand
else:
print("您输入的为非数字字符!请重新启动程序。")
sys.exit()
l=func(lst)
if i == j:
print("您输入的数字区间相同!!请重新启动程序!!")
sys.exit()
elif i > j:
print("您输入的数字区间大小有误!请重新启动程序。")
sys.exit()
else:
while a==0:
guess_number=int(input("请继续输入您猜测的数字:"))
func(l)
if guess_number>int(j) or guess_number<int(i):
print("对不起您输入的数字不在指定区间!!!")
guess_number = int(input("请继续输入您猜测的数字:"))
print("********************")
elif guess_number> l:
n+=n
print("Higher than the answer")
guess_number = int(input("请继续输入您猜测的数字:"))
print("********************")
elif guess_number<l:
n+=n
print("Lower than the answer")
guess_number = int(input("请继续输入您猜测的数字:"))
print("********************")
else:
n+=n
print("{0}{1}{2}".format("恭喜您!只用了",n,"次就赢得了游戏!"))
break
# 除了字符串格式化,还有一个我第一次lower than the answer,如果第二次还低于答案,他就不显示lower than the answer是怎么回事
能不能告诉我代码的错误以及如何正常运行至可以猜数字1回答
同学你好:;
1、
比较数字的大小,同学需要将字符的类型转换为int型。

2、不在区间时,直接continue跳过当前循环进入下一次。在下一次循环重新给guess_number赋值。

3、
每猜测一次n要加1。没有猜中直接continue进入下一次猜测。在下一次循环重新给guess_number赋值。

4、
同学的符号使用错误。

修改后代码:
import sys
import random
import datetime
a = 0
n = 0
print("{0}{1}{2}".format("*************************", "欢迎进入数字猜猜猜小游戏", "********************"))
i = (input("数字区间起始值:"))
j = (input("数字区间终止值:"))
lst = [i, j]
print("所产生的的随机数字区间为:[i,j]")
def func(l):
number = list(filter(lambda i: i.isdigit(), lst))
if len(number) == 2:
rand = random.randint(int(i), int(j))
return rand
else:
print("您输入的为非数字字符!请重新启动程序。")
sys.exit()
l = func(lst)
if int(i) == int(j):
print("您输入的数字区间相同!!请重新启动程序!!")
sys.exit()
elif int(i) > int(j):
print("您输入的数字区间大小有误!请重新启动程序。")
sys.exit()
else:
while a == 0:
guess_number = int(input("请继续输入您猜测的数字:"))
if guess_number > int(j) or guess_number < int(i):
print("对不起您输入的数字不在指定区间!!!")
print("********************")
continue
elif guess_number > l:
n += 1
print("Higher than the answer")
print("********************")
continue
elif guess_number < l:
n += 1
print("Lower than the answer")
print("********************")
continue
else:
n += 1
print("{0}{1}{2}".format("恭喜您!只用了",n,"次就赢得了游戏!"))
break关于写入文件需要同学自己去完成。
如果我解决了同学的问题,请采纳!学习愉快^_^。
相似问题