简化所有变量并在 Python 中将它们设置为 false
Simplify all variable and set them to false in Python
我不是Python高手,但是谁能简化这段代码,因为我认为一定有另一种写法。
button1_clicked = False
button2_clicked = False
button3_clicked = False
button4_clicked = False
button5_clicked = False
button6_clicked = False
button7_clicked = False
button8_clicked = False
button9_clicked = False
任何人回答我都会很有帮助:)
谢谢。
for i in range(1,10) :
vars()['button{}_clicked'.format(i)] = False
您可以使用 for in range
你可以用这样的字典来存储变量。
d = {}
for i in range(1,10):
d[f'button{i}_clicked'] = False
print(d)
{'button1_clicked': False, 'button2_clicked': False, 'button3_clicked': False, 'button4_clicked': False, 'button5_clicked': False, 'button6_clicked': False, 'button7_clicked': False, 'button8_clicked': False, 'button9_clicked': False}
要访问变量,您可以这样做
d['button2_clicked']
- 给你 False
.
你可以这样写:
button1_clicked = button2_clicked = button3_clicked = button4_clicked = button5_clicked = button6_clicked = button7_clicked = button8_clicked = button9_clicked = False
但也许最好将它们放在列表或类似的东西上,但这取决于你想要什么
一种快速而肮脏的方式:
[exec(f'buttin{i}_clicked = False') for i in range(1, 9+1)]
[exec(f'buttin{i}_clicked = True') for i in range(1, 9+1)]
由于我只看到可以说是丑陋的(自我承认的)非 pythonic 答案,我觉得有必要提供另一种方式:
button_clicked = {i: False for i in range(1,10)}
然后您可以使用例如button_clicked[5]
而不是 button5_clicked
.
这样做的好处是您现在可以轻松地遍历所有按钮,而不必单独处理每个按钮...
我不是Python高手,但是谁能简化这段代码,因为我认为一定有另一种写法。
button1_clicked = False
button2_clicked = False
button3_clicked = False
button4_clicked = False
button5_clicked = False
button6_clicked = False
button7_clicked = False
button8_clicked = False
button9_clicked = False
任何人回答我都会很有帮助:) 谢谢。
for i in range(1,10) :
vars()['button{}_clicked'.format(i)] = False
您可以使用 for in range
你可以用这样的字典来存储变量。
d = {}
for i in range(1,10):
d[f'button{i}_clicked'] = False
print(d)
{'button1_clicked': False, 'button2_clicked': False, 'button3_clicked': False, 'button4_clicked': False, 'button5_clicked': False, 'button6_clicked': False, 'button7_clicked': False, 'button8_clicked': False, 'button9_clicked': False}
要访问变量,您可以这样做
d['button2_clicked']
- 给你 False
.
你可以这样写:
button1_clicked = button2_clicked = button3_clicked = button4_clicked = button5_clicked = button6_clicked = button7_clicked = button8_clicked = button9_clicked = False
但也许最好将它们放在列表或类似的东西上,但这取决于你想要什么
一种快速而肮脏的方式:
[exec(f'buttin{i}_clicked = False') for i in range(1, 9+1)]
[exec(f'buttin{i}_clicked = True') for i in range(1, 9+1)]
由于我只看到可以说是丑陋的(自我承认的)非 pythonic 答案,我觉得有必要提供另一种方式:
button_clicked = {i: False for i in range(1,10)}
然后您可以使用例如button_clicked[5]
而不是 button5_clicked
.
这样做的好处是您现在可以轻松地遍历所有按钮,而不必单独处理每个按钮...