基本减量循环-PYTHON

基本减量循环-PYTHON,python,Python,python新手,在我的最新程序中遇到了一个障碍。简单地说,如果可能的话,我试图为用户输入变量编写一个递减循环。基本上,我有一个全局常量设置为值,例如13,每次程序循环时,它都会提示用户输入一个值,然后用户值被刮去13,直到它达到0。问题是它确实将其删除,但当它再次执行时,它会将值重置为13,并且只删除当前输入的迭代值。所以如果你每次迭代输入2,它只会把它降到11。。。但我的目标是再次使用2作为示例,11、8、5等等,或者使用3作为示例10、7、4。。。。任何帮助的人都将不胜感激,干杯:) 以我

python新手,在我的最新程序中遇到了一个障碍。简单地说,如果可能的话,我试图为用户输入变量编写一个递减循环。基本上,我有一个全局常量设置为值,例如13,每次程序循环时,它都会提示用户输入一个值,然后用户值被刮去13,直到它达到0。问题是它确实将其删除,但当它再次执行时,它会将值重置为13,并且只删除当前输入的迭代值。所以如果你每次迭代输入2,它只会把它降到11。。。但我的目标是再次使用2作为示例,11、8、5等等,或者使用3作为示例10、7、4。。。。任何帮助的人都将不胜感激,干杯:)


以我的拙见,在这么一个小片段中,附加函数最终会使事情变得复杂。很高兴看到你得到了这个概念。我没有测试过这个,但这应该做同样的事情,你正在寻找。注意第5行,我确保输入的数字不超过a的当前值。如果他们/你不小心输入了更高的内容,这应该会有所帮助。下一步是,如果您还没有尝试过错误处理,请参阅。希望这有帮助

def main():
    a = 13
    while a:
        b = int(input("Please enter a number to remove from " +  str(a) + " : "))
        if b > 0 and b <= a:
            a -= b
            print "Score is ", str(a)
    print "Win"    

main()
def main():
a=13
而a:
b=int(输入(“请输入一个从“+str(a)+”中删除的数字:”)

如果b>0和b不是对您的问题的回答,而是字符串格式的演示。这是旧样式,使用
%
“字符串插值运算符”

原始字符串中的
%i
是整数(
i
表示整数)的占位符,该占位符稍后由字符串上的
%
运算符填充

浮点数也有
%f
,字符串也有
%s
,依此类推。您可以做一些有趣的事情,比如指定小数点后三位应使用-
%.3f
打印多少个小数点,等等

另一个例子:

>>> "My name is %s and I'm %.2f metres tall." % ('Li-aung',1.83211)
"My name is Li-aung and I'm 1.83 metres tall."
这比以下内容更容易阅读:

"My name is " + name + " and I'm " + str(round(age,2)) + " metres tall"

阅读更多关于字符串格式或。

查看
global
关键字,然后尽可能地阅读关于为什么使用它是一个很好的指示,说明您正在做一些可怕的错误。我明白了,所以变量应该在函数shave()中本地化?是的,这是作业的一部分,我已经坚持了一段时间。我在这里的一个盒子上测试了它,必须修复一两个东西,现在可以了。让我知道!不要将
a
强制转换为字符串(
str(a)
)并使用字符串连接,而是使用字符串格式运算符,
%
“请输入一个要从%i中删除的数字:“%a
”。阅读有关字符串格式或的详细信息。
Input a number to subtract from 100:50
Input a number to subtract from 50:100
Number needs to be positive and less than 50.
Input a number to subtract from 50:30
Input a number to subtract from 20:20
>>> "My name is %s and I'm %.2f metres tall." % ('Li-aung',1.83211)
"My name is Li-aung and I'm 1.83 metres tall."
"My name is " + name + " and I'm " + str(round(age,2)) + " metres tall"