Python中如何获取用户的输入,你一定要知道,学Python必看

欢迎关注公众号【Python开发实战】,免费领取Python、PyCharm安装教程和Python学习电子书!

输入函数input

在Python中,使用input函数可以获取用户的输入,input函数能够让程序暂停运行,等待用户输入一些内容,然后将用户输入的内容保存为一个字符串。注意,input函数的返回值是一个字符串类型,比如用户输入一个数字6,input函数返回的也是字符串 ‘6’,而不是整数6。因此,在使用input函数获取用户输入的数字时,要在input函数之后做类型转换,这个要注意。下面通过几个示例对input函数做一下演示。

input函数可以传入一个字符串,作为给用户的输入提示。当用户输入完成后,按回车enter键即可。type函数是Python的内置函数之一,可以查看变量的类型。

示例1:输入字符串

# 示例1
name = input('请输入你的姓名:')
print(name)
print(type(name))

输出:

image-20220509211754338

在示例1中,提示输入姓名,并将输入的姓名内容赋值给了name变量,后面就可以通过访问变量name来查看输入的姓名。可以看到,变量name的类型为str字符串类型。

示例2:输入数字

# 示例2
age = input('请输入你的年龄:')
print(age)
print(type(age))

输出:

image-20220509211828572

在示例2中,提示输入年龄,我们都知道年龄应该是一个数字类型,但是输入数字28之后,变量age却是被赋值为字符串28。因此,为了防止程序后面会用到变量age,这里应该做一个类型转换,下面会介绍。

示例3:输入为空字符

# 示例3
address = input('请输入你的住址:')
print('>>>', address, '<<<')

输出:

image-20220509212349135

在示例3中,提示输入住址,然后这里我们什么都没有输入,直接enter。可以发现,input函数获取到的是一个空字符串。

示例4:输入中含有空白

# 示例4
hobby = input('请输入你的爱好:')
print('>>>', hobby, '<<<')

输出:

image-20220509212316321

在示例4中,提示输入爱好,但是在输入内容的前后多按了一些空格,而input函数并不会处理这些空白。

从上面的几个示例中,可以发现,不管用户输入什么,input函数都会原封不动地获取并转为字符串。因此,为了避免不合理的输入内容造成程序报错,一般都需要对用户的输入做一些处理,下面介绍一些常见的处理用户输入内容的操作。

处理input输入内容

  1. 将输入的字符串类型转换为数字类型

    将输入的内容转换为数字类型,可以在input获取到输入内容之后,直接进行类型转换。

    age = input('请输入你的年龄:')
    
    age = int(age)   # 将字符串str转化为整数int
    print(age)
    print(type(age))
    
    if age >= 18:
        print("年满18岁")
    else:
        print("未满18岁")
    

    输出:

    image-20220509214818103

    对于直接进行类型转换的方法,如果用户输入的是纯数字,是行得通的。但是如果用户的输入中含有字符,就会出现问题。还是上面的程序,但是不再输入纯数字,就会出现ValueError的错误。

    image-20220509215405396

    解决上面ValueError的问题,可以在使用类型转换之前,先对输入内容进行判断,修改如下:

    age = input('请输入你的年龄:')
    
    # isdigit函数可以判断字符串是否为纯数字格式
    if age.isdigit(): 
        age = int(age)  # 将字符串str转化为整数int
        print(age)
        print(type(age))
    
        if age >= 18:
            print("年满18岁")
        else:
            print("未满18岁")
    
    else:
        print("年龄输入不合法!")
    

    输出:

    image-20220509215834280

    还可以在类型转换时通过异常捕获,来解决上面ValueError的问题。

    age = input('请输入你的年龄:')
    
    try:
        age = int(age)   # 将字符串str转化为整数int
        print(age)
        print(type(age))
    
        if age >= 18:
            print("年满18岁")
        else:
            print("未满18岁")
            
    except ValueError as e:
        print('年龄输入不合法!')
    

    输出:

    image-20220509220238822

  2. 对空输入进行判断

    对空输入作判断,非常简单。

    address = input('请输入你的住址:')
    if address:
        print('>>>', address, '<<<')
    else:
        print('地址输入为空!')
    

    输出:

    image-20220509220848054

  3. 去除字符串前后的空白

    去除字符串前后的空白,可以使用字符串的strip方法,只去除左侧的空白可以使用lstrip方法,只去除右侧的空白可以使用rstrip方法。

    hobby = input('请输入你的爱好:')
    print(hobby)
    
    hobby = hobby.strip()
    print(hobby)
    

    输出:

    image-20220509221014624


如果这篇内容对你有所帮助,欢迎点赞,收藏,转发,让更多的小伙伴也能看到哦~