获取输入以仅接受字符串Python中的内容

时间:2020-09-23 20:07:28

标签: python

我的Python代码试图获取用户提供的输入并将其返回,但是在第5行中,我希望用户只能写m或f,而不能写其他任何东西,因此我查找了python是否有一个char数据类型类似于c ++,但事实并非如此,我一直在寻找,人们说您可以将字符串用作数据类型,但我不知道如何实现,所以希望大家能给我启发。

这里是代码的链接,重要部分是4和5。所写的只是一个猜测。

#Input your information
name = input("Enter your Name: ")
surname = input("Enter Surname: ")
str(m,f)
gender = str(input("What is your gender?(m,f)")
height = input("Enter your Height: ")
 
#Print your information
print("\n")
print("Printing Your Details")
print("Name", "Surname", "Age","Gender","Height")
print( name, surname, age, gender, height)

4 个答案:

答案 0 :(得分:2)

如果您希望用户进行多个“尝试”,请在循环内的其他答案中使用“ if”条件,例如while True:循环

while True:
    gender = input("What is your gender?(m,f)")
    if gender in ("m","f"):
        break
    print("Invalid gender input!")
print("Gender is",gender)

答案 1 :(得分:1)

您想对输入进行条件处理:如果输入是某种东西,那么没问题<style name="ShapeOverlay.Fab" parent=""> <item name="cornerFamily">cut</item> <item name="cornerSize">48%</item> </style> 如果if not then... That's why you can use性别statement. just ask if f is m`

or

在此代码中,我将“ m”和“ f”放入列表中,并询问性别(用户响应)是否在列表中,表示它是m还是f

编辑:如评论中所建议,一个更好的版本将是:

if gender is in ['m', 'f']
    # Valid Answer
else
    # Not Valid Answer

if gender.lower() in ['m', 'f'] # Valid Answer else # Not Valid Answer 更改为小写,然后将其与'm'或'f'进行比较,只是为了确保您不希望区分大小写

答案 2 :(得分:0)

只需检查输入条件:

gender = input("What is your gender?(m,f)")
if gender not in ["m", "f"]:
    print("Invalid gender input!")

答案 3 :(得分:0)

如果您要继续问选择题,可以使用以下特殊方法:

def choices(message, m):
    print(message)
    print('Choices:')
    for i in m:
        print(' -', i)
    while True:
        chosen = input('Input Here: ')
        if chosen in m:
            break
        print('Invalid.')
    print('Great choice:', chosen, '\n')
    return chosen


gender = choices('What is your gender?', ['m', 'f'])
color = choices('What is your favorite color?', ['red', 'green', 'blue'])
foobar = choices('Which do you use more?', ['foo', 'bar'])

我也出于艺术上的自由,要求选择喜欢的颜色。