input()函数——输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

    语法参考

input()函数可以提示并接收用户的输入,将所有的输入按照字符串进行处理,并返回一个字符串,input()函数的基本用法如下:

input([prompt])

参数说明:

prompt:可选参数,表示提示信息。

示例:接收用户输入的内容,并保存到变量中,代码如下:

name = input("Please enter your name:")     #提示请输入你的名字

print(name)                 #输出名字

输入Tom后,程序的运行结果为:

Please enter your name:Tom

Tom

示例:使用input()函数提示输入内容,将《静夜思》中的诗句保存到列表中并输出,代码如下:

# 输入《静夜思》中的诗句

a=input("输入第一句:")               # 提示输入内容

b=input("输入第二句:")

c=input("输入第三句:")

d=input("输入第四句:")

list=[a,b,c,d]                        # 将内容存入列表

print(list)                            # 输出列表内容

依次输入:床前明月光、疑是地上霜、举头望明月、低头思故乡,程序的运行结果如下:

输入第一句:床前明月光

输入第二句:疑是地上霜

输入第三句:举着放明月

输入第四句:低头思故乡

['床前明月光', '疑是地上霜', '举着放明月', '低头思故乡']

在Python 3.x中,无论输入的是数字还是字符都将被作为字符串读取。如果想要接收数值,需要把接收到的字符串进行类型转换。

示例:使用input()函数提示输入内容,将输入的成绩转换为整型保存到列表中并输出,代码如下:

# 提示输入数学、英语、语文成绩

score1 = int(input("请输入数学成绩:"))    # 转换为整型

score2 = int(input("请输入英语成绩:"))

score3 = int(input("请输入语文成绩:"))

list = [score1,score2,score3]         # 将变量内容存入列表

print(list)                             # 输出列表内容

依次输入:88、76、100,程序的运行结果如下。

请输入数学成绩:88

请输入英语成绩:76

请输入语文成绩:100

[88, 76, 100]

提示:input()函数返回的值是字符串类型的,如果要让输入的数字变为整型,可以使用int()函数将数字或字符串转换为整数。

示例:实现根据输入的字符,利用ord()函数将字符转换为对应的ASCII数值,代码如下:

n =input("输入一个字符:")                     # 输入字母或数字,不能输入汉字

value=ord(n)                                   # 用ord()函数将字符转换为对应的ASCII数值

print(n + "的ASCII码为:", value)            # 显示字符对应的ASCII码值

输入A,程序的运行结果如下:

输入一个字符:A

A的ASCII码为: 65

    快用锦囊

锦囊01  常用输入

使用input()输入信息时,提示信息参数可以为空(不提示任何信息),也可以和转义字符结合(如提示信息后加“\n”,表示在提示信息后换行)。常见应用代码如下:

name = input("")  # 无提示型输入,不换行

name1 = input("name:")            # 简洁型输入

name2 = input("请输入您的姓名:")  # 提示型输入,不换行

name3 = input("姓名:\n")           # 提示型输入,换行

输出结果为:

张三丰

name:李铁

请输入您的姓名:理想

姓名:

李世民    

也可以将多条输入语句放到列表、元组或字典中。例如,放到列表中,将实现把输入结果保存到列表中,代码如下:

data=[input('姓名:'),input('电话:'),input('学校:')]

print(data )

输出结果为:

姓名:张三丰

电话:1868688110

学校:清华大学

['张三丰', '1868688110', '清华大学']

锦囊02  去除输入的非法字符

输入数据时,有时可能会输入空格等非法字符,这时可以使用字符串的strip()、lstrip()或rstrip()方法去除。例如下面的代码:

name =input("请输入您的姓名:").strip(' ')    # 去除输入数据两端的空格

age =input("请输入您的年龄:").lstrip(' ')    # 去除输入数据左侧的空格

print(name)

print(age)

输出结果为:

请输入您的姓名: joy

请输入您的年龄:   12

锦囊03  多数据输入

input()函数支持多个数据输入,输入的时候通常使用字符串的split()方法进行分割,如同时输入某一地点的坐标值等。示例代码如下:

x,y=input("请输入出发地点的横、纵坐标值,用英文逗号分隔:").split(',') # 一行输入两个不限定类型的值

name,age,height=input('请输入你的姓名、年龄和身高,用英文逗号分隔:\n').split(',')

a,b=map(int,input('请输入两个数,用空格分隔:\n').split())        # 一行输入两个限定类型为int的值

print(x,y)

print(age)

print(a,b)

输出结果为:

请输入出发地点的横、纵坐标值,用英文逗号分隔:123,210

请输入你的姓名、年龄和身高,用英文逗号分隔:

joy,22,1.68

请输入两个数,用空格分隔:

27 89

123 210

22

27 89

说明:如果不按指定规则输入将输出“ValueError: not enough values to unpack”异常。

通过循环语句也可以实现多数据输入,也需要使用字符串的split()方法对输入的数据进行分割。如:

sum = 0

for in input('请输入多个加数,中间用空格分隔:').split(' '):

    sum = sum+int(x)

print(sum)

输出结果为:

请输入多个加数,中间用空格分隔:

1 2 3 4 5 6 7 8

36

锦囊04  强制转换输入

用户通过input()函数输入的数据都是字符串类型的,有时程序要求输入的数据为某种特定数据类型,如整型、浮点型或日期型等,这时就需要在输入后进行强制转换。例如,使用int()函数将用户输入的字符格式的数据转换为整型数据。代码如下:

age = int(input('age:'))

print(age)

print(type(age))

输出结果为:

age:30

30

<class 'int'>

有时对输入的字符是有一定要求的,如首字母大写、输入全部为小写等,这时可以使用字符串的lower()、upper()、capitalize()或title()等方法对输入的字符串进行强制转换。如:

password= input('请输入您的密码:').upper()      # 将输入的字符串转换为全部大写

name= input('请输入您的姓名:').capitalize()     # 将输入的字符串转换为首字母大写

school= input('请输入您的学校:').title()         # 将输入的单词全部转换为首字母大写

print(password,name,school)                       # 输出以上转换后的内容

输出结果为:

请输入您的密码:abcdefg      

请输入您的姓名:joy

请输入您的学校:harvard university

ABCDEFG Joy Harvard University

锦囊05  对输入数据进行验证

在Python中,提供了一些对字符串进行验证的方法,通过它们可以非常方便地判断输入内容是大写字母、小写字母、数字或是空白字符等。主要方法如下:

l  isalnum():所有字符都是数字或者字母;

l  isalnum():所有字符都是字母;

l  isdigit():所有字符都是数字;

l  islower():所有字符都是小写;

l  isupper():所有字符都是大写;

l  istitle():所有单词都是首字母大写,类似标题;

l  isspace():所有字符都是空白字符、\t、\n、\r。

使用字符串的isdigit()方法可以验证输入是否为数字。例如,需要输入为纯数字方可进入系统,否则退出系统,代码如下:

if input('请输入数字验证码:').isdigit():

    print('正在登录草根之家商务系统!')

else:

    print('输入非法,将退出系统!')

输出纯数字的运行结果如下:

请输入数字验证码:1314

正在登录草根之家商务系统!

输出非纯数字的运行结果如下:

请输入数字验证码:q1e2

输入非法,将退出系统!

为了有效验证输入的各种情况,如输入是否为空,输入是否为指定长度字符等,可以自定义验证函数inputbox(),在该函数中使用isdigit()、isalpha()等函数对可能出现的各种情况进行验证判断,并且将符合条件的输入内容返回。inputbox()的代码如下:

def inputbox(showstr, showorder, lengh = 0):

    '''

    功能:输入并验证数据,返回符合条件的数据

    :param showstr:  提示信息

    :param showorder:验证模式,值为1表示不为零的纯数字;值为2表示3个字母;值为3表示指定个数的数字

    :param lengh:输入字符个数,默认值为0

    :return: 符合条件的数据

    '''

    instr = input(showstr)

    if len(instr) != 0:

        if showorder == 1:     # 判断是否为纯数字

            if str.isdigit(instr):

                if instr == 0:

                    print("\033[1;31;40m 输入为零,请重新输入!!\033[0m")

                    return "0"

                else:

                    return instr

            else:

                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")

                return "0"

        if showorder == 2:   # 判断是否为3个字母

            if str.isalpha(instr):

                if len(instr) != 3:

                    print("\033[1;31;40m必须输入三个字母,请重新输入!!\033[0m")

                    return "0"

                else:

                    return instr

            else:

                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")

                return "0"

        if showorder == 3:   # 判断是否为指定个数的数字

            if str.isdigit(instr):

                if len(instr) != lengh:

                    print("\033[1;31;40m必须输入" + lengh + "个数字,请重新输入!!\033[0m")

                    return "0"

                else:

                    return instr

            else:

                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")

                return "0"

    else:

        print("\033[1;31;40m输入为空,请重新输入!!\033[0m")

        return "0"

例如,需要输入3个字母时,可以使用下面的代码。

print(inputbox('请输入3个字母',2))

当输入的内容为123时,将显示如图1所示的运行结果。

图1  输入错误内容时的效果

当输入的内容为abc时,将显示如图2所示的运行结果。

图2  输入正确内容时的效果

说明:本实例的代码需要在PyCharm中运行。

通过字符串的一些方法,可以很方便地进行验证,但灵活度不够。使用字符的ASCII码进行数据验证,方便、灵活,而且高效。如对输入进行数字验证,要求输入5位数字,并且只允许输入数字1~8(注意:验证时没有考虑密码是否一致),代码如下:

instr=input('请输入5位数字验证码:').strip(' ')

isgo='go'

if len(instr)!= 5:

    print('输入非5位数字,请重新输入!')

    isgo = 'no'

else:

    for in instr:

        if ord(i) not in range(ord('1'),ord('9')):

            print('输入了非有效数字字符,请重新输入!')

            isgo = 'no'

            break

if isgo =='go':

    print('正在登录站长之家系统!')

输出效果如图3、图4、图5所示。

图3  输入正确的数字

图4  输入位数不够的效果

图5  输入含非有效的数字字符

注册用户时,如果要求输入的用户名为所有字母、数字和符号,除了@、\、/、#4个特殊符号,该如何验证呢?字母、数字和符号的ASCII码值范围(十进制)是33到126,需要去除的特殊字符@、\、/、#的ASCII码值为64、47、92、35。编写代码如下:

instr=input('注册用户名:').strip(' ')

isgo='go'

for i in instr:

    if ord(i) in range(33,127):

        if  ord(i) in  [64,47,92,35]:

             print('输入了非法字符 ', i, ' 请重新输入!')

             isgo = 'no'

             break

    else:

        print('输入了非法字符,请重新输入!')

        isgo = 'no'

        break

if isgo =='go':

    print('用户名注册完成,请继续填写其他注册信息!')

程序运行后,输入注册用户名,如mingrisoft001,并按下〈Enter〉键,将提示“用户注册完成,请继续填写其他注册信息”,运行效果如图6所示;输入“mingri#”,因为包含了非法字符“#”,则提示“输入了非法字符 # 请重新输入!”,运行效果如图7所示。

图6  输入正确的字符

图7  输入非法字符的效果

    应用场景

场景一:对输入的用户名和密码进行验证

对输入的用户名和密码进行验证,假设用户的用户名为“joe”,密码为“123456”。如果用户输入正确,则提示用户“稍后,正在进入账户!”;如果输入用户和u,则提示用户“用户名或密码输入错误,请重新输入!”,让用户重新输入;如果用户名和密码输入错误超过三次,则提示“用户或密码输入错误超过三个,将退出程序!”,然后退出程序。实现代码如下:

for in range(0,3):
    user = input('请输入用户名:')
    if user == 'joe':
        password = input('请输入密码:')
        if password == '123456': 
            print('稍后,正在进入账户!',end = '')
            break
        else
:
            print('密码输入错误,请重新输入!!')
    else:
        print('用户名输入错误,请重新输入!!')
if user=='joe'and password == '123456':
   print('稍后,正在进入账户!',end = '')
else:
   print('用户或密码输入错误超过三个,将退出程序!!')

运行程序,输出效果如图8,图9,图10所示。

场景二:输入三角形的三边长来判断是怎样的三角形

如果要一次转换多个输入数据的值,可以使用map()函数。map()函数可以接收一个函数和列表,并通过函数依次作用到列表的每个元素,返回一个新的列表。本例输入三角形三个边的边长要一次输入,需要使用map()、input()和int()函数。具体用法为:a,b,c=map(int,input().split(' ')),split()函数通过空格分解字符串为列表,int()函数将分解的字符串转换为数字,实现代码如下:

a, b, c = map(int, input("请输入三角形的三条边长,用空格间隔:").split())  # 分解输入的边长

if a > 0 and b > 0 and c > 0:  # 判断输入的边长是否大于0

    if a + b > c and b + c > a and a + c > b:  # 判断输入的边长是否构成三角形

        ans = "可以构成三角形"

        if a == b and b == c and a == c:  # 判断是否构成等边三角形

            ans = "可以构成等边三角形"

        else:

            if a == b or b == c or a == c:  # 判断是否构成等腰三角形

                ans = "可以构成等腰三角形"

            # 判断是否构成等腰直角三角形

            if a ** 2 == b ** 2 + c ** 2 or b ** 2 == a ** 2 + c ** 2 or c ** 2 == a ** 2 + b ** 2:

                ans = "可以构成等腰直角三角形"

    else:

        ans = "不能构成三角形"

else:

    ans = "边长必须大于0!!"

print(ans)

运行程序,如果输入3 4 5,则输出结果如下。

请输入三角形的三条边长,用空格间隔:3 4 5

可以构成等腰直角三角形

运行程序,如果输入10 10 10,则输出结果如下。

请输入三角形的三条边长,用空格间隔:10 10 10

可以构成等边三角形

场景三:通过键盘控制DOS下主程序菜单的选择

在DOS或命令提示符下运行的程序主功能菜单,通常是通过菜单列表前面的数字进行程序功能选择的。是否可以通过键盘的上下键进行选择呢?当然是可以的,通过正则表达式对输入的数字或者移动的方向键进行判断,就可以通过数字键和方向键对菜单的选择。代码如下:

import re

print('''

      Microsoft MS-DOS 10 Startup Menu

      =============================================

          1.ghost 11.2

          2.ghost 8.3

          3.DOS TOOLS

          4.PGMAGIC

          5.DOS

          0.退出系统

      =============================================

      说明:通过数字键或者↑↓方向键选择菜单

    ''')

option_str = input('请通过数字键或者↑↓方向键选择功能:')

option = re.sub(r'\D','',option_str)

if int(option) == 1:  # 选择数字键1执行的菜单

    print('将运行ghost 11.2系统')

if int(option) == 2:  # 选择数字键2执行的菜单

    print('将运行ghost 8.3系统')

if int(option) == 3:  # 选择数字键3执行的菜单

    print('将运行DOS 工具箱')

if int(option) == 4:  # 选择数字键4执行的菜单

    print('将运行系统魔法设置')

if int(option) == 5:  # 选择数字键5执行的菜单

    print('将进入DOS系统')

if int(option) == 0:  # 选择数字键0,退出系统

    print('将退出系统')

程序的运行结果如图11所示。

图11  运行结果

说明:本程序如果想通过方向键选择菜单,需要在命令行窗口或者IDLE下运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/746976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

调频信号FM的原理与matlab与FPGA实现

平台&#xff1a;matlab r2021b&#xff0c;vivado2023.1 本文知识内容摘自《软件无线电原理和应用》 调频(FM)是载波的瞬时频率随调制信号成线性变化的一种调制方式&#xff0c;音频调频信号的数学表达式可以写为&#xff1a; Fm频率调制&#xff0c;载波的幅度随着调制波形…

LLM文本数据集775TB:覆盖32个领域,444个数据集

大语言模型在各领域展现出巨大潜力&#xff0c;其性能在很大程度上依赖于训练和测试所用的数据集。然而&#xff0c;目前在如何构建和优化这些数据集方面&#xff0c;尚缺乏统一的认识和方法论。下面从五个方面整合和分类了LLM数据集的基本内容&#xff1a;预训练语料库、指令微…

【第14章】探索新技术:如何自学SD3模型(找官方资料/精读/下载/安装/3款工作流/效果测试)ComfyUI基础入门教程

近期,也就是2024年6月12日,StabilityAI开源了最新的SD3模型的2B版本,而神奇的是,ComfyUI早在6月11号就已经适配了SD3!相比之下,SD WebUI 的更新速度却远远落后... 所以,如果想要尝试一些AI绘画领域的新技术,ComfyUI是一个非常值得投入时间学习的工具。 这节课,我们就…

什么是API?如何进行API对接?

目录 一、API和API对接的定义 二、API接口的应用场景 三、为什么需要API对接 四、如何进行API对接 GET请求 POST请求 五、API对接的注意事项 在这个数字化时代&#xff0c;API像一把万能钥匙&#xff0c;让数据流动起来&#xff0c;创造出无限可能。本文旨在介绍API及其…

分享一个 MySQL 简单快速进行自动备份和还原的脚本和方法

前言 数据备份和还原在信息技术领域中具有非常重要的作用&#xff0c;不论是人为误操作、硬件故障、病毒感染、自然灾害还是其他原因&#xff0c;数据丢失的风险都是存在的。如果没有备份&#xff0c;一旦数据丢失&#xff0c;可能对个人、企业甚至整个组织造成巨大的损失。 …

6毛钱SOT-23封装28V、400mA 开关升压转换器,LCD偏置电源和白光LED应用芯片TPS61040

SOT-23-5 封装 TPS61040 丝印PHOI 1 特性 • 1.8V 至 6V 输入电压范围 • 可调节输出电压范围高达 28V • 400mA (TPS61040) 和 250mA (TPS61041) 内部开关电流 • 高达 1MHz 的开关频率 • 28μA 典型空载静态电流 • 1A 典型关断电流 • 内部软启动 • 采用 SOT23-5、TSOT23…

【会议征稿,IEEE出版】第三届机器人、人工智能与智能控制国际会议(RAIIC 2024,7月5-7)

第三届机器人、人工智能与智能控制国际会议&#xff08;RAIIC 2024&#xff09;将于2024年7月5-7日中国绵阳举行。 RAIIC 2024是汇聚业界和学术界的顶级论坛&#xff0c;会议将邀请国内外著名专家就以传播机器人、人工智能与智能控制领域的技术进步、研究成果和应用做专题报告…

呼叫中心项目需要关注什么?

呼叫中心系统项目合作的关键要素可以归纳如下&#xff1a; 1、明确合作目标和需求&#xff1a; 首先&#xff0c;需要明确呼叫中心系统项目的合作目标&#xff0c;例如提高客户满意度、降低成本、提升服务效率等。 同时&#xff0c;需要详细分析项目的具体需求&#xff0c;包括…

【Linux】线程Thread

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 线程概述 …

期货交易记录20240626

文章目录 期货交易系统构建第一步、选品第二步、心态历练第三步、开仓纪律第四步、持仓纪律第五步、接下来的计划 2024年6月26号&#xff0c;开始写期货交易的第四篇日记。 交易记录&#xff1a;做了一笔纯碱的多单&#xff0c;在回撤了400个点左右后&#xff0c;看到企稳信号后…

标签接口开发(富含完整CRUD开发流程)

文章目录 1.easyCode生成CRUD1.生成代码2.查看代码3.调整代码1.SubjectLabelDao.xml发现生成的select语句不带逗号&#xff01;&#xff01;&#xff01;1.解决方法&#xff1a;2.entity.java.vm3.dao.java.vm4.Mapper.xml.vm 2.重新生成代码3.SubjectLabelDao.java 删除Pageab…

ArkTS开发系列之Web组件的学习(2.9)

上篇回顾&#xff1a;ArkTS开发系列之事件&#xff08;2.8.2手势事件&#xff09; 本篇内容&#xff1a; ArkTS开发系列之Web组件的学习&#xff08;2.9&#xff09; 一、知识储备 Web组件就是用来展示网页的一个组件。具有页面加载、页面交互以及页面调试功能 1. 加载网络…

【Java】Java序列化和反序列化

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 # Java中的序列化和反序列化 在Java中&#xff0c;序列化是将对象的状态写入字节流的机制。它主要用于Hibernate…

国家自然科学基金标书大全(2002-2024)

数据来源&#xff1a;在20世纪80年代初&#xff0c;为了促进中国的科技体制革新并改革科研资金分配机制&#xff0c;中国科学院的89位院士联名向党和国家领导人提出建议&#xff0c;设立了国家自然科学基金的设立。国自然基金自创立以来&#xff0c;根据国家发展科学技术方针、…

可以一键生成热点营销视频的工具,建议收藏

在当今的商业环境中&#xff0c;热点营销已经成为了一种非常重要的营销策略。那么&#xff0c;什么是热点营销呢&#xff1f;又怎么做热点营销视频呢&#xff1f; 最近高考成绩慢慢公布了&#xff0c;领导让结合“高考成绩公布”这个热点&#xff0c;做一个关于企业或产品的营销…

力扣:59. 螺旋矩阵 II(Java,模拟)

目录 题目描述示例 1&#xff1a;代码实现 题目描述 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5…

想布局短视频赛道,云微客AI矩阵系统告诉你诀窍

随着人工智能技术的不断发展&#xff0c;越来越多的企业和个人创作者开始意识到智能化的重要性。而现阶段&#xff0c;随着短视频市场的膨胀扩大&#xff0c;批量成片、智能创作、定时发布是当下重要的趋势&#xff0c;企业如果想在短视频赛道分一杯羹&#xff0c;智能化的平台…

七天速通javaSE:第二天 基础:标识符与数据类型

文章目录 前言一、注释与标识符1. 注释2. 标识符2.1 标识符2.2 关键字 二、数据类型1. 语言类型2. 数据类型2.1 基本数据类型2.2引用数据类型 三、类型转换1. 自动转换2. 强制转换&#xff08;不建议&#xff09; 四、代码规范 前言 今天将学习Java语法的基础&#xff0c;认识…

自然语言处理——英文文本预处理

高质量数据的重要性 数据的质量直接影响模型的性能和准确性。高质量的数据可以显著提升模型的学习效果&#xff0c;帮助模型更准确地识别模式、进行预测和决策。具体原因包括以下几点&#xff1a; 噪音减少&#xff1a;高质量的数据经过清理&#xff0c;减少了无关或错误信息…

open()函数——打开文件并返回文件对象

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 open()函数用于打开文件&#xff0c;返回一个文件读写对象&#xff0c;然后可以对文件进行相应读写操作。 语法参考 open()函数的语法格式如下&…