Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在函数中使用while循环?_Python_While Loop_Raw Input - Fatal编程技术网

Python 如何在函数中使用while循环?

Python 如何在函数中使用while循环?,python,while-loop,raw-input,Python,While Loop,Raw Input,我决定修改以下while循环,并在函数中使用它,以便循环可以接受任何值,而不是6 i = 0 numbers = [] while i < 6: numbers.append(i) i += 1 我创建了以下脚本,以便可以使用variableor更具体地说是参数,而不是6 def numbers(limit): i = 0 numbers = [] while i < limit: numbers.append(i)

我决定修改以下while循环,并在函数中使用它,以便循环可以接受任何值,而不是6

i = 0
numbers = []
while i < 6:
    numbers.append(i)
    i += 1
我创建了以下脚本,以便可以使用variableor更具体地说是参数,而不是6

def numbers(limit):
    i = 0
    numbers = []

    while i < limit:
        numbers.append(i)
        i = i + 1
    print numbers

user_limit = raw_input("Give me a limit ")      
numbers(user_limit)
当我没有使用raw_输入并简单地从脚本中输入参数时,它工作得很好,但现在当我在Microsoft Powershell中运行它时,在询问raw_输入中的问题后,光标会持续闪烁。然后我必须按CTRL+C来中止它。可能函数在原始输入后没有被调用

现在它给出了一个内存错误,如图中所示。

您需要将用户限制转换为整数:

原始输入返回值为str,语句使用的是i,即int

您需要将user_limit转换为Int:

原始输入返回值为str,语句使用的是i,即int


输入之后是否按下回车?如果升级到Python 3 .x,那么你就有一个错误,你应该考虑是否真的需要运行这样一个古老的Python版本。你的i@Duncan我现在在跟踪一本书,现在它的工作原理是,你的数字函数复制了内置的范围函数。你在输入之后按下回车了吗?如果你升级到Python 3。x,那么你就有了一个错误,你应该考虑是否真的需要运行这样一个古老的Python版本。你正在做一个无限循环,请参阅下面的答案。你的i@Duncan我在看一本书,现在它工作了。当然,你的数字函数复制了内置的范围函数;不支持正确比较的相同类型的对象按其地址排序。整数总是小于字符串。测试:1@Rapha埃尔·布拉德是的,你是对的,这就是为什么它是一个无止境的循环。这就是为什么它给了我一个记忆错误。谢谢现在它工作得很好!Cf CPython手册:CPython实现详细信息:除数字以外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。整数总是小于字符串。测试:1@Rapha埃尔·布拉德是的,你是对的,这就是为什么它是一个无止境的循环。这就是为什么它给了我一个记忆错误。谢谢现在它工作得很好!
def numbers(limit):
    i = 0
    numbers = []

    while i < limit:
        numbers.append(i)
        i = i + 1
    print numbers

user_limit = int(raw_input("Give me a limit "))
numbers(user_limit)
Give me a limit 8
[0, 1, 2, 3, 4, 5, 6, 7]