带有while循环和异常的python中的字符串

时间:2018-10-22 11:59:01

标签: python string while-loop except valueerror

嗨,我是python编码的初学者! 这是我的代码:

IStartupFilter

此代码的主要目的是检查输入。如果输入的字符串不是OK,但是输入的整数则错误。我的问题是格式也为整数的代码,我没有收到错误消息。您能帮我哪里错了吗?

3 个答案:

答案 0 :(得分:0)

您可以使用.isdigit()方法检查字符串是否仅包含数字字符,例如

if x.isdigit():
    raise Exception

还有.isalpha()方法,用于检查字符串是否为字母。

答案 1 :(得分:0)

出于检查目的,可以改用input()方法,然后做出相应决定。

[iahmad@ijaz001 ~]$ python2.7
Python 2.7.15 (default, May  9 2018, 11:32:33) 
[GCC 7.3.1 20180130 (Red Hat 7.3.1-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

>>> x=input()
'hi'
>>> type(x)
<type 'str'>

>>> x=input()
10
>>> 
>>> type(x)
<type 'int'>
>>> 

[iahmad@ijaz001 ~]$ python3.6
Python 3.6.5 (default, Apr  4 2018, 15:09:05) 
[GCC 7.3.1 20180130 (Red Hat 7.3.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> x=eval(input())
'hi'
>>> 
>>> type(x)
<class 'str'>

>>> 
>>> x=eval(input())
10
>>> 
>>> type(x)
<class 'int'> 

答案 2 :(得分:0)

如果您只需要在输入包含一个或多个数字时引发异常,则可以尝试:

x = str(raw_input('Please enter your message: '))

if any( i.isdigit() for i in x ):
     raise Exception("Input contains digits, therefore it is not a word")

但是,我假设您还想在输入类似“ hel $ o”之类时引发异常-特殊字符也需要排除-。在这种情况下,您应该尝试使用一些正则表达式。