如何获得准确的输出?

时间:2016-03-06 04:02:57

标签: python

我编写了一个程序来获取用户的文字,并将这些单词的多个作为输出。现在我做不了两件事

1 - 如何仅限制字符串输入,即如果用户输入整数,则程序必须抛出错误。

2 - 输入 - 猫垫蝙蝠输出 - >猫垫蝙蝠     输入 - 猫,垫,蝙蝠输出 - >猫,s mat,s bat,s(我想避免这种情况,即当用户用逗号分隔单词然后我应该得到蝙蝠而不是蝙蝠,s)

请在这里指导我,请注意缩进。

谢谢

`(def plural(user_input):
    # creating list 
    List_of_word_ends = ['o','ch', 's', 'sh', 'x', 'z']
    words = user_input.split()
    ws = "";
    # setting loop to for words
    for word in words:
        if len(word)>0 :
            if word.endswith("y"):
                word = word[:-1]
                word += "ies"
            else:
                isSomeEs = False;
                for suffix in List_of_word_ends:
                    if word.endswith(suffix):
                        word += "es"
                        isSomeEs = True;
                        break
                if not isSomeEs:
                    word += "s"
            ws += word+" "
    print ws
# taking input from user
singular = raw_input("Please enter the words whose plural you want:")
# returns a list of words
x = singular.split(" ")
x = singular.split(",")
#calculate the length of object 
y = len(x)
print "The no. of words you entered is :", y 
#function call
plural(singular))`

3 个答案:

答案 0 :(得分:0)

回答你的第一个问题

# taking input from user
singular = raw_input("Please enter the words whose plural you want:")

try:
   val = int(singular)
except ValueError:
   print("Please enter a valid string. Integer not accepted!!!")

答案 1 :(得分:0)

为了帮助您解决第一个问题,即输入类型问题,只要您有用户输入,就可以添加try/catch。这样的事情应该有效:

singular = raw_input("Please enter the words whose plural you want. ")
try:
    int(singular)
except ValueError:
    print "Invalid input! Please try again."

答案 2 :(得分:-1)

关于第一个要求 - 你可以做一些简单的事情:

如果是单数==类型(5):     打印'错误'

5 in in type - 可以替换为任何int。

关于第二个要求 - 不确定你到底要找什么......如果你能,请提供一个例子。