【发布时间】:2014-07-28 16:33:29
【问题描述】:
我正在尝试使用 raw_input 从用户那里获取输入,我想捕捉用户可能输入数字的情况。我一直在搜索抛出堆栈溢出和其他各种网站,但我没有遇到任何对我来说很有意义的东西。由于 raw_input 总是返回一个字符串,是否有可能捕获这样的实例?
class Employee(object):
def __init__(self,name,pay_rate,hours):
self.name = name
self.pay_rate = pay_rate
self.hours = ("mon","tues","wed","thursday","friday","saturday","sunday")
def __str__(self):
return self.name
@property
def weekly_total(self):
return sum(self.hours)
@classmethod
def from_input(cls):
while True:
try:
name = raw_input("Enter new employee name\n")
except ValueError:
print("\n This is a integer ")
continue
else:
break
while True:
try:
pay = input("Enter pay rate ")
except ValueError:
print("You must enter a value ")
continue
else:
break
while True:
try:
hours = input("Enter a tuple for days monday through sunday ")
except ValueError:
print("use must enter a tuple with 7 integer values")
continue
else:
break
return cls(name,pay,hours)
employee = Employee.from_input()
print str(employee)
【问题讨论】:
-
您的意思是要确保用户在需要数字时输入数字,反之亦然?请注意,您不应该使用
input()-int(raw_input(...))更明确。 -
反之亦然,但我也需要前者用于支付输入和小时元组输入。我想确保为名称输入一个字符串,然后确保为工资和小时输入浮点值。
标签: python python-2.7 input user-input