张海琦 发表于 2023-7-23 18:28:29

求助

"""我们一起来玩一个小游戏吧"""

temp = input("今天是班花的生日,她在家举办了一场生日宴会,你喜欢她很久了,打算在今天向她告白")
temp = input("可是你没有合适的衣服,你决定:a.直接去 b.买衣服:")
guess = int(temp)

if guess == a:
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    print("看着钱包里的余额,你咬咬牙,还是决定去商场里买几身新衣服")
    print("逛了半天,你买到了几身像样的衣服,虽然没钱吃饭了,但一想到班花,你心里就觉得值得")
    print("到了晚上,你在大家的起哄声中向她告白")
    print("班花生气极了:“就你这个样子还想和我在一起,真是癞蛤蟆想吃天鹅肉,没门!”你羞愤地夺门而出")
         
print("你还是单身")


这个代码运行到一半就不行了,为啥啊,无法选择买衣服还是直接去

陶远航 发表于 2023-7-23 18:28:49

这段代码运行中出现了一些问题。在Python中,输入函数input()返回的是一个字符串类型的值。因此,在比较guess的值时,应该使用字符串 'a' 而不是变量 a。你可以尝试修改代码如下:

temp = input("今天是班花的生日,她在家举办了一场生日宴会,你喜欢她很久了,打算在今天向她告白")
temp = input("可是你没有合适的衣服,你决定:a.直接去 b.买衣服:")
guess = temp.lower()# 将输入转换为小写字母
if guess == 'a':
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    print("看着钱包里的余额,你咬咬牙,还是决定去商场里买几身新衣服")
    print("逛了半天,你买到了几身像样的衣服,虽然没钱吃饭了,但一想到班花,你心里就觉得值得")
    print("到了晚上,你在大家的起哄声中向她告白")
    print("班花生气极了:“就你这个样子还想和我在一起,真是癞蛤蟆想吃天鹅肉,没门!”你羞愤地夺门而出")
    print("你还是单身")


在修改后的代码中,我们使用 temp.lower() 将用户输入转换为小写字母,然后与字符串 'a' 进行比较。这样就能正确判断选择是买衣服还是直接去。

希望对你有帮助!如果你还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-7-23 18:28:55

问题描述:
这段Python代码在运行到一半的时候无法进行选择买衣服还是直接去,请问是怎么回事?


"""我们一起来玩一个小游戏吧"""

temp = input("今天是班花的生日,她在家举办了一场生日宴会,你喜欢她很久了,打算在今天向她告白")
temp = input("可是你没有合适的衣服,你决定:a.直接去 b.买衣服:")

guess = int(temp)

if guess == a:
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    print("看着钱包里的余额,你咬咬牙,还是决定去商场里买几身新衣服")
    print("逛了半天,你买到了几身像样的衣服,虽然没钱吃饭了,但一想到班花,你心里就觉得值得")
    print("到了晚上,你在大家的起哄声中向她告白")
    print("班花生气极了:“就你这个样子还想和我在一起,真是癞蛤蟆想吃天鹅肉,没门!”你羞愤地夺门而出")

print("你还是单身")


解决方法:
在这段代码中,有一处错误导致了无法选择买衣服还是直接去。问题出现在以下代码片段:


guess = int(temp)

if guess == a:
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    # 其他代码...


原因是您将选项作为字符串进行输入,但在比较时,使用了变量 a 而不是字符串 "a"。因此,代码应该进行如下修改:


guess = temp

if guess == "a":
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    # 其他代码...


通过上述修改,您应该能够正确地选择买衣服或直接前往。希望能帮到您!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-7-23 18:31:15

这个问题的原因在于你在比较 guess 和 a 的时候, a 被当作变量处理了,但是你并没有定义过这个变量 a ,所以它会抛出一个 NameError 错误。实际上,你需要将 a 当作字符串来处理。

另外,你的 input 函数返回的是一个字符串,而你在下一行用 int 函数将其转成了整数,这也是错误的,因为你需要的输入是 a 或 b ,而不是数字。

修正后的代码如下:

print("我们一起来玩一个小游戏吧")

print("今天是班花的生日,她在家举办了一场生日宴会,你喜欢她很久了,打算在今天向她告白")
temp = input("可是你没有合适的衣服,你决定:a.直接去 b.买衣服:")

if temp == 'a':
    print("你穿着一身寒酸的衣服去了班花的生日宴会,看着在场的人,你内心的自卑被唤起了。你没有选择表白,而是默默离开了。")
else:
    print("看着钱包里的余额,你咬咬牙,还是决定去商场里买几身新衣服")
    print("逛了半天,你买到了几身像样的衣服,虽然没钱吃饭了,但一想到班花,你心里就觉得值得")
    print("到了晚上,你在大家的起哄声中向她告白")
    print("班花生气极了:“就你这个样子还想和我在一起,真是癞蛤蟆想吃天鹅肉,没门!”你羞愤地夺门而出")

print("你还是单身")


在这个修正后的代码中, temp 是一个字符串,它的值是用户的输入。然后我们比较 temp 和字符串 'a' ,如果用户输入的是 'a' ,就执行第一个 print 语句,否则执行后面的语句。

张海琦 发表于 2023-7-23 19:15:12

isdkz 发表于 2023-7-23 18:31
这个问题的原因在于你在比较 guess 和 a 的时候, a 被当作变量处理了,但是你并没有定义过这个变量 a ,所 ...

谢谢
页: [1]
查看完整版本: 求助