(我是Python的初学者,所以你知道)
我正在尝试做什么:我想要计算一个用户选择错误选项的次数,如果它超过了很多次,他就会失败。
我的方法是将计数存储在函数中的变量中,如果超过次数,则使用if / else语句进行检查。
部分代码:
choice = int(input("> "))
if choice == 1:
print("This is the wrong hall.")
increment()
elif choice == 2:
print("This is the wrong hall.")
increment()
elif choice == 3:
hall_passage()
else:
end("You failed")
COUNT = 0
def increment():
global COUNT
COUNT += 1
increment()
print(COUNT)
增量部分来自this thread,使用全局范围读取不是一个好习惯。
我不太了解的部分是你如何在一个变量中存储计数,它会在每次运行函数时记住最后一个值。
这样做的最佳方式是什么?
答案 0 :(得分:2)
调整this答案,您可以使用自己的__dict__
函数。注意:如果您没有遇到@
语法,则会搜索" python"," decorator":
import functools as ft
def show_me(f):
@ft.wraps(f)
def wrapper(*args, **kwds):
return f(f, *args, **kwds)
return wrapper
@show_me
def f(me, x):
if x < 0:
try:
me.count += 1
except AttributeError:
me.count = 1
print(me.count, 'failures')
f(0)
f(-1)
f(1)
f(-2)
输出:
1 failures
2 failures
答案 1 :(得分:0)
也许是这样......
class Counter():
def __init__(self):
self.counter = 0
def increment(self):
self.counter += 1
def reset(self):
self.counter = 0
def get_value(self):
return self.counter
mc = Counter()
while mc.get_value() < 3:
v = int(input('a number: '))
if v == 1:
print('You won!')
mc.counter = 3
else:
print('Wrong guess, guess again...')
if mc.counter == 2:
print('Last guess...')
mc.increment()
答案 2 :(得分:0)
您对此解决方案有何看法?
如果您在循环中放置此处,则会强制用户输入正确的答案。
我也在if / elif / else语句输入函数之间放置。
count - 该变量计算错误的选项
choice = int(input("> "))
count =0
while choice !=3:
if choice == 1:
print("This is the wrong hall.")
count += 1
choice = int(input("> ")) # Also i place in the if/elif/else statements input function
elif choice == 2:
print("This is the wrong hall.")
count +=1
choice = int(input("> "))
elif choice == 3:
hall_passage()
else:
end("You failed")
count += 1
choice = int(input("> "))
print(count)