抱歉缺乏细节,因为我是 python 的初学者:
c1 = c2 = c3 = c4 = c5 = False
x = int(input("Enter a number 1-5: "))
if x > 5 or x < 1:
print("Your number must be between 1 and 5")
else:
"c", x = True
第 8 行是连接 2 个字符串的地方。
我不确定我是否足够清楚,或者这是否可能在Python,但如果更有经验的人能够做出回应,那就太棒了。
我已经浏览了好几页的问题,但仍然没有找到与我想做的事情相关的任何内容。与 YouTube 相同。
理解你的目标是将输入数字 (1-5) 转换为相应变量名 (
c1
到
c5
) 并将其值设置为
True
。
你可以使用 f 字符串(Python 3.6+ 中引入)优雅地实现这一点:
c1 = c2 = c3 = c4 = c5 = False
x = int(input("输入一个 1-5 的数字:"))
if x > 5 or x < 1:
print("你的数字必须在 1 和 5 之间")
else:
exec(f"c{x} = True")
print(c1, c2, c3, c4, c5)
解释:
-
f"c{x} = True"
:此部分使用 f 字符串动态创建一个字符串,该字符串根据x
的值求值为"c1 = True"
、"c2 = True"
等。 -
exec(...)
:exec
函数将动态创建的字符串作为 Python 代码执行。这会将相应变量的值设置为True
。
此方法避免了笨拙的
if-else
或
dictionary
查找,从而为你提供了一个简洁的解决方案。