15733068961 发表于 2020-6-30 17:44:07

大佬们帮帮忙!

print("你几点出来?")
temp = input("输入,如5:00的形式:")
guess = temp
while guess != "4:30":
    temp = input("输入,如5:00的形式:")
    guess = temp
    if guess == "4:30":
      print("好吧,等你哟~")
      print("分别输两遍"/exit()/"退出")
      temp = input("输入:")
      if temp == "exit":
            exit
    else:print("你的答案我不满意,重输!")
帮忙看看哪错了?

qiuyouzhi 发表于 2020-6-30 17:48:54

while True:
    guess = input("输入,如5:00的形式:")
    if guess == "4:30":
      print("好吧,等你哟~")
      print("分别输两遍, exit退出")
      guess = input("输入:")
      if guess == "exit":
            break
    else:
      print("你的答案我不满意,重输!")
这样可以吗,没看懂你代码思路

Twilight6 发表于 2020-6-30 17:52:34

本帖最后由 Twilight6 于 2020-6-30 17:56 编辑


你的 print("分别输两遍"/exit()/"退出") 错了,你这样是意思调用 exit 函数是会退出程序的

应该写成字符串: print("分别输两遍 exit 退出")

然后你这里的:
if temp == "exit":
            exit
忘记加上括号 是不会退出的

正确代码:
print("你几点出来?")
guess = input("输入,如5:00的形式:")

while guess != "4:30":
    guess = input("输入,如5:00的形式:")
   
    if guess == "4:30":
      print("好吧,等你哟~")
      print("分别输两遍 exit 退出")
      temp = input("输入:")
      if temp == "exit":
            temp = input("输入:")
            if temp == "exit":
                exit()
    else:print("你的答案我不满意,重输!")

liuzhengyuan 发表于 2020-6-30 18:07:32

本帖最后由 liuzhengyuan 于 2020-6-30 19:24 编辑

exit 建议换成 break

或者按照楼上的方法也可以

2291437529 发表于 2020-6-30 22:35:44

欢迎各位大佬指导/改进(可以的话来个最佳哦)(第一次写回复呢)

本帖最后由 2291437529 于 2020-6-30 22:58 编辑

print("你几点出来?")
temp = input("输入,如5:00的形式:")
guess = temp
while guess != "4:30":
    print("你的答案我不满意,重输!")
    temp = input("输入,如5:00的形式:")
    guess = temp
print("好吧,等你哟~")
print("分别输两遍exit退出")
temp = input("输入:")
while temp != "exit":
    temp = input("不对哦,再来:")
temp = input("再输一遍哦:")
while temp != "exit":
    temp = input("错啦,再来:")
if temp == "exit":
    print("拜拜~")
    exit

2291437529 发表于 2020-6-30 22:38:45

本帖最后由 2291437529 于 2020-6-30 22:40 编辑

qiuyouzhi 发表于 2020-6-30 17:48
这样可以吗,没看懂你代码思路

你的代码,到了退出的时候,不输入exit就会从头开始判断,而且exit只输入一次就over了。

2291437529 发表于 2020-6-30 22:47:03

Twilight6 发表于 2020-6-30 17:52
你的 print("分别输两遍"/exit()/"退出") 错了,你这样是意思调用 exit 函数是会退出程序的

应该写成 ...

你的代码,如果一开始就输入的是4:30的话,就会直接结束,什么反馈都不会有。只有第一次不是正确答案,而后面有正确答案的时候才会进入while循环体。并且由于if语句不存在重复判断关系,无论在后面输入什么内容,都会退出程序。

Twilight6 发表于 2020-6-30 22:50:13

2291437529 发表于 2020-6-30 22:47
你的代码,如果一开始就输入的是4:30的话,就会直接结束,什么反馈都不会有。只有第一次不是正确答案,而 ...



这个我们怎么不知道? 我们是帮助楼主改错,如果想改进,这还不简单?

2291437529 发表于 2020-6-30 22:57:21

Twilight6 发表于 2020-6-30 17:52
你的 print("分别输两遍"/exit()/"退出") 错了,你这样是意思调用 exit 函数是会退出程序的

应该写成 ...

emmmm,exit没有括号,也能退出。可能这就是python吧。

Twilight6 发表于 2020-6-30 23:01:32

2291437529 发表于 2020-6-30 22:57
emmmm,exit没有括号,也能退出。可能这就是python吧。



建议测试过在说....

2291437529 发表于 2020-7-1 02:30:33

Twilight6 发表于 2020-6-30 23:01
建议测试过在说....

我测试过了,并且我之前回复楼主的贴子里,我的代码exit也是没有放括号的。目前我还没有报错,并且成功运行了。

2291437529 发表于 2020-7-1 02:32:48

Twilight6 发表于 2020-6-30 22:50
这个我们怎么不知道? 我们是帮助楼主改错,如果想改进,这还不简单?

我觉得改错应该明白的指出来才能节约版主的时间,节约大家的时间。(萌新个人见解,欢迎批评指正。)

Twilight6 发表于 2020-7-1 07:51:07

2291437529 发表于 2020-7-1 02:30
我测试过了,并且我之前回复楼主的贴子里,我的代码exit也是没有放括号的。目前我还没有报错,并且成功运 ...




只填函数名称代表的是这个函数体本身就不会报错,函数体不会调运函数,带上括号才是调用函数,才会返回运行结果

你试试print 不加括号 看看会不会报错吧,运行成功,不代表你的代码没有错误,你这里 exit 没有达到退出功能逻辑上就算错误

你的guess = temp 是多余的 ,直接用 temp 即可,guess可以不要,去掉,有 guess 的地方变量名全改成 temp 即可

而且你这里if 代码判断是否等于 exit ,而前面两个循环的退出循环条件都是等于 exit ,这里的 if 判断是多余的,可以去掉

最后一行完全没有必要需要exit() 函数的退出,因为之后没有代码了,所以你这里的exit 也完全是多余的,既然是改错但是你改完了代码虽然没报错的,但是逻辑上很多没用的地方


我觉得改错应该明白的指出来才能节约版主的时间,节约大家的时间。(萌新个人见解,欢迎批评指正。)

你说的没错,楼主错误的地方我们楼上都指出了,而你实际上并没有说明指出哈

你这里只是多加两个判断正确与否的循环,将楼主代码更加完善,而没有说明改错的地方,只是单纯优化了下楼主的答案

但是优化后问题也很多 具体上面的都说了

2291437529 发表于 2020-7-1 08:01:31

好的,感谢

2291437529 发表于 2020-7-1 08:09:34

Twilight6 发表于 2020-7-1 07:51
只填函数名称代表的是这个函数体本身就不会报错,函数体不会调运函数,带上括号才是调用函数,才会 ...

我刚刚试过了,确实,在其他位置放入exit没有发挥作用,而且也没有报错。感谢大佬。
页: [1]
查看完整版本: 大佬们帮帮忙!