gpt4 book ai didi

python - 在函数之间共享状态

转载 作者:行者123 更新时间:2023-12-02 18:18:02 27 4
gpt4 key购买 nike

我需要为此作业创建一个个性任务,并且我已经编写了这段代码。我知道这可能不是最好的方法,但我想知道为什么它不起作用。

我有 3 个问题,它们都是函数(这里只显示 1 个),它们的结构都是相同的,除了问题 2 和问题 3 不是使用 num_1,而是使用 num_2 和 num_3。我收到错误:“int”和“str”的实例之间不支持“<”。我尝试将 num_1 放入 int(num_1) 中,但这不起作用。任何帮助将不胜感激,谢谢!

def question1():
print("What's your favorite genre of music?")
print("1. Pop")
print("2. Rap")
print("3. Metal")
music = int(input("Enter 1, 2, or 3: "))
if music == 1:
num_1 = 3
elif music == 2:
num_1 = 2
else:
num_1 = 1

def main():
question1()
if "num_1" + "num_2" + "num_3" == 9:
print("Your favorite color is red")
elif 5 < "num_1" + "num_2" + "num_3" < 9:
print("Your favorite color is blue")
else:
print("Your favorite color is green")

main()

最佳答案

if "num_1" + "num_2" + "num_3" == 9:

您需要变量 num_1num_2num_3不需要字符串“num_1”“num_2”“num_3”

表达式 "num_1"+ "num_2"+ "num_3" 为您提供连接字符串 "num_1num_2num_3",然后您尝试将其与整数 进行比较9这就是您看到的原因:

... not supported between instances of 'int' and 'str'

改用这个:

if num_1 + num_2 + num_3 == 9:

此外,依赖这样的全局变量并不是一个好主意(首先它不起作用)。问题最好返回您可以使用的值,例如:

def question1():
print("What's your favorite genre of music?")
print("1. Pop")
print("2. Rap")
print("3. Metal")
music = int(input("Enter 1, 2, or 3: "))
if music == 1:
return 3
music == 2:
return 2
return 1

def main():
num_1 = question1()
# and so on ...

您的代码还有一个问题,因为您实际上没有设置 num_2num_3 为任何内容,但我猜这会与您打算问的其他两个问题有关(在这个简化的问题中被排除在外)。


我还质疑您关于首选音乐风格和首选颜色之间联系的说法,但我会忽略这一点:-)

关于python - 在函数之间共享状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71274358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com