老师能不能帮忙看一下代码的问题,

来源: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回答

好帮手乔木

2020-02-12

同学你好:;

1、

比较数字的大小,同学需要将字符的类型转换为int型。

http://img.mukewang.com/climg/5e43d88409bfd16905570199.jpg

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

http://img.mukewang.com/climg/5e43db2b092dcf9505060117.jpg

3、

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

http://img.mukewang.com/climg/5e43db8a091b909706370335.jpg

4、

同学的符号使用错误。

http://img.mukewang.com/climg/5e43dc1809a97ea406300163.jpg

修改后代码:

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


关于写入文件需要同学自己去完成。

如果我解决了同学的问题,请采纳!学习愉快^_^。

0

0 学习 · 8160 问题

查看课程