【发布时间】:2018-12-19 20:25:34
【问题描述】:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
如何要求用户输入姓名和年龄?
【问题讨论】:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
如何要求用户输入姓名和年龄?
【问题讨论】:
您可以在 init 中执行此操作。如果在 Python 2.7 中,请使用 raw_input
class Person:
def __init__(self):
self.name = input('Name: ')
self.age = int(input('Age: ')
p1 = Person()
print(p1.name)
print(p1.age)
或者如果你想把它放在外面
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
name = input('Name: ')
age = int(input('Age: '))
p1 = Person(name,age)
print(p1.name)
print(p1.age)
【讨论】:
__init__ 中这样做是个坏主意;提示键盘输入不应该是构造函数的工作。此外,它还可以防止您从 键盘输入之外的任何内容初始化 Person,或使用这些特定提示之外的任何内容。
This 会有所帮助,但简单的答案是:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person((raw_input("Enter Name"), int(raw_input("Enter Age"))))
print(p1.name)
print(p1.age)
【讨论】:
raw_input 仅适用于 Python 2
The input function 用于获取用户的输入。您可以根据用户输入创建一个新的Person,如下所示:
p1 = Person(input("What is your name?"), int(input("What is your age?")))
这是一种在输入年龄时防止非整数用户输入的方法:
name = input("What is your name?")
try:
age = int(input("What is your age?"))
except:
print("Invalid input.")
exit()
p1 = Person(name, age)
【讨论】:
对于 Python 3,您可以使用 input():
name = input('Enter your name:')
age = input('Enter your age: ')
对于 Python 2,raw_input():
name = raw_input('Enter your name:')
age = raw_input('Enter your age: ')
请注意,在读取来自用户的输入时,您需要将 age 转换为 int,因为您将获得一个字符串值。
age = int(age)
但请注意,如果用户输入无效的int,则会引发错误
【讨论】: