我试图从函数(enter_student_name
)获取用户输入值并将其添加到我的字典函数(add_student
)中。但是当我打印时,我得到一个布尔值而不是输入的字符串。
控制台示例:输入学生姓名: john
[{'name': True}]
我希望它返回[{'name': john}]
。
students = []
def enter_student_name():
while True:
student_name = str.isalpha(input('Enter student name: '))
if student_name:
add_student(student_name)
print(students)
# enter_student_id()
else:
print('Please enter a name only')
continue
def add_student(name):
student = {"name": name }
students.append(student)
答案 0 :(得分:2)
str.isalpha()
返回true或false。见https://www.tutorialspoint.com/python/string_isalpha.htm
而是从输入中获取值,然后检查字母字符:
students = []
def enter_student_name():
while True:
student_name = input('Enter student name: ')
if str.isalpha(student_name):
add_student(student_name)
print(students)
# enter_student_id()
else:
print('Please enter a name only')
continue
def add_student(name):
student = {"name": name }
students.append(student)
答案 1 :(得分:1)
将isalpha()
移至if语句:
student_name = input('Enter student name: ')
if student_name.isalpha():
答案 2 :(得分:1)
只需使用str
代替str.isalpha
,而不是:
str.isalpha(input('Enter student name: '))
使用
str(input('Enter student name: '))
这会将任何给定值转换为字符串并使其有效。
然后使用isalpha
的if条件检查字符串是否包含所有字母,然后再调用add_student(student_name)
函数调用。