0

我对 Python 和一般编程非常陌生。现在我正在摆弄课程以了解基本概念。

到目前为止的代码:

class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __repr__(self):
        return '[Person: %s, Age: %s]' % (self.name,self.age)
class Employee(Person):
    def __init__(self,name,age,salary,jobs):
        self.salary=salary
        self.jobs= []
        Person.__init__(self,name,age)

到目前为止真的很简单.. 无论如何,确保用户输入两个单词字符串的最佳方法是什么?我应该为此使用正则表达式吗?或者也许是一个尝试/异常块?提前感谢您的任何回复。

4

2 回答 2

1

有几种方法可以满足您的要求。正如您所指出的,正则表达式可以工作 - 尽管对于您的示例来说它们可能有点矫枉过正。

相反,您可以try将 auser_input转换为您想要的类型,并except处理错误:

try:
  self.age = int(user_input)
except ValueError:
  print "You didn't enter a number for age, try again"

假设user_input是一个字符串;如果它是一个只有数字的字符串(例如'25'),那么int()将它转换为一个 int 没有障碍,你将拥有self.age = 25. 如果它是一个字符串(例如'25'),它会抛出一个ValueError,你可以做任何你想做的事情(显示错误信息,要求用户再次输入,等等)。

这将为您提供检查输入的非常基本的方法;根据您的要求,您可能想要更多。例如,您可能想要强制限制self.age(例如,超过 18,小于 99),您可以使用简单的if语句来做到这一点。

要检查用户是否给出了作业的单词列表,您可以使用该split()方法,该方法使用给定的分隔符拆分单词字符串并返回单词数组。例如,如果user_input'engineer janitor'user_input.split()将返回['engineer', 'janitor']

>>> user_input = 'engineer janitor'
>>> user_input.split()
['engineer', 'janitor']

(请记住,它split()需要一个可选参数,即要拆分的字符串。因此,如果您希望用户用逗号分隔作业,您可以调用user_input.split(',')

然后,您可以使用该len()功能来确保用户输入了 2 个以上的作业。

>>> jobs = user_input.split()
>>> len(jobs)
2

对于更复杂的检查(例如,如果您想确保工作列表中的单词全部大写,并且长度超过 2 个字母),那么是的,正则表达式可能是您想要的,但它们可能有点如果您刚开始使用 Python,那将是压倒性的 :)

于 2013-11-11T18:45:33.763 回答
0
  1. 要检查字符串是否有长度,您可以使用:
    使用 split 拆分名称。现在检查by If its 2 then way 2 gols=name.split(" ")
    的长度!lslen(ls)

  2. 要检查变量var是否为 int,请检查其类型:
    print type(var)

您可以使用 type 来检查任何class自定义或已定义的内容。
更多信息在这里输入

于 2013-11-11T18:43:02.017 回答