2014-11-04 93 views
0

我需要编写一个函数,当用户输入一个字符串时,根据字符串是否全是数字,这个函数会给出true或false。这是我到目前为止,但林不知道什么是错的确定一个字符串是否只有使用函数的数字

def string(): 
    st=input('Enter string: ') 
    if st.isdigit(): 
     stc='True' 
    else: 
     stc='False' 


     return stc 


n = int(input("Number of runs: ")) 
for i in range(n): 
    print() 
    stc=string() 
    if stc=='True': 
     print('True') 
    else: 
     print('False') 
+0

你只在返回负值的情况下(缩进很重要!),为什么返回一个字符串,不是布尔? – jonrsharpe 2014-11-04 23:07:21

回答

0

你只在STC返回else

正确的是:

def string(): 
    st=input('Enter string: ') 
    if st.isdigit(): 
     stc='True' 
    else: 
     stc='False' 
    return stc 

而是使用代表字符串布尔值,为什么不直接使用TrueFalse

def string(): 
    st=input('Enter string: ') 
    if st.isdigit(): 
     stc=True 
    else: 
     stc=False 
    return stc 

那么你可以改变,如果条件以及一切都会更好一点:

... 
stc=string() 
if stc: 
    print('True') 
else: 
    print('False') 

更新:

正如评论指出的那样,你也可以只是完全跳过if条件并且只返回st.isdigit()这样:

def string(): 
    st=input('Enter string: ') 
    return st.isdigit() 

请记住,现在你得到一个布尔值(True/False)作为回报,所以你需要调整if条件

+0

哇,谢谢。 – Kujo 2014-11-04 23:08:29

+2

如果st.isdigit():stc = True else:stc = False'是不好的样式,'return st.isdigit()'会产生相同的结果。 – jonsca 2014-11-04 23:12:01

+0

的确,整个函数可以写成'string = str.isdigit'。 – kindall 2014-11-04 23:15:41

相关问题