Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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 请求正整数并验证输入的简单函数_Python_Function_Input_Integer - Fatal编程技术网

Python 请求正整数并验证输入的简单函数

Python 请求正整数并验证输入的简单函数,python,function,input,integer,Python,Function,Input,Integer,我只是尝试创建一个函数,要求输入一个正整数,然后验证输入是否确实是一个正整数: def int_input(x): x = input('Please enter a positive integer:') if x != type(int()) and x < 1: print("This is not a positive integer, try again:") else: print(x) int_input(x) de

我只是尝试创建一个函数,要求输入一个正整数,然后验证输入是否确实是一个正整数:

def int_input(x):
    x = input('Please enter a positive integer:')
    if x != type(int()) and x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

int_input(x)
def int_输入(x):
x=输入('请输入一个正整数:')
如果x!=类型(int())和x<1:
打印(“这不是正整数,请重试:”)
其他:
打印(x)
输入(x)
它给了我“名称错误:名称‘x’未定义”

这是如此的简单可笑,我觉得我应该在这上面找到很多帖子,所以我可能是瞎了


谢谢

您定义了该函数,然后将其作为参数传递
x
,但
x
确实没有在
int\u input(x)
的作用域中定义(在本例中为全局)

更正确的代码版本是:

def int_input(x):
    if x != type(int()) and x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

x = input('Please enter a positive integer:')
int_input(x)
将始终为
False
,因为
type(int())
将始终为
int
(一种类型),而
x
是一个值。哦,您也应该将一个值传递给
int()
,否则它总是返回
0

def int\u input():
def int_input():
    x = input('Please enter a positive integer:')
    if x != type(int()) and x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

int_input()
x=输入('请输入一个正整数:') 如果x!=类型(int())和x<1: 打印(“这不是正整数,请重试:”) 其他: 打印(x) int_输入()

应该是这样的,如果不声明
x

,就不能调用函数
int\u input()?在这种情况下,您需要在if语句中说
,而不是

def int_input(x):
    if x != type(int()) or x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

x = input('Please enter a positive integer:')
int_input(x)
def int_输入(x):
如果x!=键入(int())或x<1:
打印(“这不是正整数,请重试:”)
其他:
打印(x)
x=输入('请输入一个正整数:')
输入(x)
此外,我不确定您使用的是哪个版本的python。3.x应该可以正常工作,但如果使用2.x,如果用户输入字符串,则会出现错误。为了防止出现这种情况,您可以添加一个例外,如下所示:

def int_input(x):
    if x != type(int()) or x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

try:
    x = input('Please enter a positive integer:')
    int_input(x)
except:
    print("This is not a positive integer, try again:")
def int_输入(x):
如果x!=键入(int())或x<1:
打印(“这不是正整数,请重试:”)
其他:
打印(x)
尝试:
x=输入('请输入一个正整数:')
输入(x)
除:
打印(“这不是正整数,请重试:”)

您使用的是哪个Python版本?不清楚为什么您的函数首先将
x
作为参数,但您的最后一行肯定传递了一个未定义的
x
变量。@MoinuddinQuadri 3.5I只是不明白为什么我不能包含x=input(…)第二部分,我确实感觉它会给我带来问题,你可以,但在这种情况下,你不需要向你的函数传递任何参数。因此,您需要将其定义更改为
defint\u input():
并通过执行
int\u input()
而不是
int\u input(x)
def int_input(x):
    if x != type(int()) or x < 1:
        print("This is not a positive integer, try again:")
    else:
        print(x)

try:
    x = input('Please enter a positive integer:')
    int_input(x)
except:
    print("This is not a positive integer, try again:")