2024-04-26 11:56:20 发布
网友
我有一个应用程序有几个命令。 当您键入某个命令时,您必须键入有关某个/某人的其他信息。 现在,信息必须是严格意义上的整数或字符串,这取决于具体情况。
然而,无论您使用raw_input()在Python中键入什么,实际上都是一个字符串,所以更具体地说,我将如何在不尝试的情况下很快地……除了查看变量是否由数字或字符组成之外?
如果要检查它是什么:
>>>isinstance(1,str) False >>>isinstance('stuff',str) True >>>isinstance(1,int) True >>>isinstance('stuff',int) False
如果要从原始输入中获取int
>>>x=raw_input('enter thing:') enter thing: 3 >>>try: x = int(x) except: pass >>>isinstance(x,int) True
如果给定的字符串只是一个或多个数字,则^{} method of the ^{} type返回True。如果不是,你知道字符串应该被当作一个字符串。
True
我认为你有两个选择:
尝试将其转换为int,但捕获异常:
int
try: value = int(value) except ValueError: pass # it was a string, not an int.
这就是请求宽恕的方法。
显式测试字符串中是否只有数字:
value.isdigit()
只有字符串中的所有字符都是数字(0-9)时,^{}才返回True。
0
9
与unicode/Python 3str类型等价的是^{}/^{};只有Unicode小数可以转换为整数,因为并非所有数字都有实际的整数值(例如,U+00B2 SUPERSCRIPT 2是数字,但不是小数)。
unicode
str
这通常被称为“请求许可”方法,或“三思而后行”。
后者不会检测所有有效的int()值,因为int()值中也允许有空白和+和-。第一个表单很乐意接受' +10 '作为一个数字,后者不会
int()
+
-
' +10 '
如果您希望用户通常将输入一个整数,请使用第一个表单。在这种情况下,请求宽恕比请求许可更容易(更快)。
如果要检查它是什么:
如果要从原始输入中获取int
如果给定的字符串只是一个或多个数字,则^{} method of the ^{} type 返回
True
。如果不是,你知道字符串应该被当作一个字符串。我认为你有两个选择:
尝试将其转换为
int
,但捕获异常:这就是请求宽恕的方法。
显式测试字符串中是否只有数字:
只有字符串中的所有字符都是数字(} 才返回
0
-9
)时,^{True
。与} /^{} ;只有Unicode小数可以转换为整数,因为并非所有数字都有实际的整数值(例如,U+00B2 SUPERSCRIPT 2是数字,但不是小数)。
unicode
/Python 3str
类型等价的是^{这通常被称为“请求许可”方法,或“三思而后行”。
后者不会检测所有有效的
int()
值,因为int()
值中也允许有空白和+
和-
。第一个表单很乐意接受' +10 '
作为一个数字,后者不会如果您希望用户通常将输入一个整数,请使用第一个表单。在这种情况下,请求宽恕比请求许可更容易(更快)。
相关问题 更多 >
编程相关推荐