这是我的代码:
import sys
import click
def Seats():
global seats
seats = 168
print("\nThe current seating capacity is {}\n".format(seats))
def Restart():
while True:
restart = click.confirm('\nWould you like to subtract 1 from seats?',
default=True)
if restart == True:
x = seats - 1
Seats()
elif restart == False:
print("\nOk, see you next time!\n")
sys.exit()
Seats()
Restart()
我想问用户“您想从seats中减去1吗?”然后从seats变量中减去1,然后重复,直到用户输入no
要使事情正常运行,您必须在
Restart()
函数中将seats
声明为全局变量,并停止在Seats()
函数中重置它。它不必在下面的Seats()
函数版本中声明,因为它不再试图设置或更改其值要从变量中减去一个数字并将结果存储回变量,您需要执行
variable = variable - number
或使用更简洁的variable -= number
语句另外,当您想要终止
Restart()
中的while循环并让它“结束”和return
时,您所需要做的就是break
退出while True
循环以下是您的代码和这些更改:
正如评论中指出的,代码中的主要问题如下:
无论何时何地在代码中调用函数
Seats
,都会重新定义seats
的值,因为seats = 168
会被执行当问题被指出后,我试图编辑您的代码,使其保持相同的结构,以便向您展示如何解决问题,但我改变了主意。尽管代码很小,但它有一个不必要的复杂逻辑和一个非常不干净的语法。你是个初学者,所以没问题!正因为如此,我认为向您展示实现该算法的另一种方法会更有价值。下面是:
sys
库。你没有使用它while seats > 0
避免在没有剩余座位时减去座位,同时也是用于与用户交互的主循环else
子句将自动注意#阿什多贝斯特女孩
相关问题 更多 >
编程相关推荐