python如何判断用户输入回车键?--关于input()函数的前世今生

2023-05-16

前言

最近在写代码的时候,需要判断一下用户是不是敲了回车键,于是写出了这样的代码:

if input('输入回车键进入程序') == '\n':
    print('开始程序。')

当时的目的是为了用户不输入任何内容,只敲回车键,无奈,print('开始程序。')永远也无法执行……

正确的代码应该是:

if input('输入回车键进入程序') == '':
    print('开始程序。')

== '\n'换成 == ''即可。

当敲下回车键时,表示输入结束了,而在input()函数中,默认是把回车键删除,所以最后输入的内容只剩下空的字符串。

既然都说到这了,那就一起看看 input() 的前世今生吧


input() 函数的前世今生

前世

python2.x中,有分raw_input()input()两个标准输入函数
python3.x中,只保留了input() 一个标准输入函数

简单说区别就是,在python2.x中,raw_input()输入的内容不管是数字还是其他字符都会转化为字符串,而input()只能输入纯数字
在python3.x中,input()可以输入数字和其他字符,但都会转化为字符串,相当于python2.x中的raw_input()
如果想要详细了解的话,可以看这篇文章,写得很详细啦:

https://blog.csdn.net/u011475210/article/details/77777482


今生

好了,就不聊那么多过去了,看看现在input()还有什么好玩的玩法。


玩法1

让input()遇到回车键也能持续输入

我们无法修改input()函数让它忽略掉回车键,但是我们可这样“忽悠”它:

txt = ''
while True:
    k = input()
    if k == 'quit':
        break
    txt += k + '\n'
print('*****以下是输出内容*****')
print('txt:\n'+txt)

请看效果:

在这里插入图片描述

这样我们就可以让input()好像忽略掉了回车键,可以持续输入内容,输入quit之后敲回车才结束

还有更简单的写法,看起来更高级:

txt = ''
for k in iter(input, 'quit'):
    txt += k+'\n'
print('*****以下是输出内容*****')
print(txt)

玩法2

限制用户的输入内容,比如只能输入字母

方式1:在输出结果上进行过滤,可以用正则表达式实现。

import re
while True:
    txt = input()
    txt = re.sub('[^a-zA-Z]','',txt)
    print(txt)

请看效果:
在这里插入图片描述

方式2:在键盘上输入上进行限制,那这样的话我们就要监听用户的键盘了
使用pynput第三方库可以对用户的键盘进行监听和操作。

from pynput.keyboard import Listener
import threading

def listening():
    def on_press(key):
        try:
            if not(65 <= key.vk <= 90): # 65~90是键盘a~z的编码值
                print('\b',end='') # \b是退格符,相当于键盘Backspace
        except AttributeError:
            pass
    with Listener(on_press=on_press) as listener:
        listener.join()

threading.Thread(target=listening).start()
while True:
    txt = input()
    print(txt)

请看效果:
在这里插入图片描述
这样的话就只能输入字母了,输入别的内容都会被删掉。


总结

虽然上面介绍的一些用法好像并没什么用,但是学习嘛
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python如何判断用户输入回车键?--关于input()函数的前世今生 的相关文章

  • 《画解数据结构》九张动图,画解队列

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免
  • 《画解数据结构》(2 - 1)- 树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免会遇
  • 《画解数据结构》三张动图,画解哈希

    本文已收录于专栏 x1f333 画解数据结构 x1f333 零 前言 目前本专栏正在进行优惠活动 xff0c 在博主主页添加博主好友 xff08 好友位没有满的话 xff09 xff0c 可以获取 付费专栏优惠券 数据结构 和 算法 是密不
  • 《画解数据结构》九张动图,画解顺序表

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 这篇文章 作者将用 七张动图 来阐述一种最基础的顺序结构 顺序表 相信看我文章的大多数都是 大学生 能
  • 《画解数据结构》十张动图,画解双端队列

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免
  • 《画解数据结构》二十五彩图,画解平衡二叉树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 上一篇文章 二叉搜索树 中 对于 增 删 改 查 的时间复杂度为 O l o g
  • 安装ofsoftswitch13的问题解决

    安装ofsoftswitch13的问题解决 cmake时出现错误 xff0c 是因为前面的库有的没有安装好 xff0c 安装好以后 xff0c 错误消失 根据CPqD ofsoftswitch13 OpenFlow 1 3 switch 给
  • 《画解数据结构》之画解二叉树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免会遇
  • 《画解数据结构》三十张彩图,画解二叉搜索树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 我们知道 顺序表 可以 快速索引 数据 而 链表 则可以快速的进行数据的 插入 和 删除 那么 有没有一种
  • 《画解数据结构》九张图画解二叉堆

    本文已收录于专栏 x1f333 画解数据结构 x1f333 前言 目前本专栏正在进行优惠活动 xff0c 在博主主页添加博主好友 xff08 好友位没有满的话 xff09 xff0c 可以获取 付费专栏优惠券 在之前的文章 二叉搜索树 中
  • 《算法零基础100讲》(第1讲) 幂和对数

    文章目录 零 写在前面 一 概念定义 1 幂 2 对数 3 换底公式 二 题目描述 三 算法详解 四 源码剖析 五 推荐专栏 六 习题练习 零 写在前面 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专
  • 《算法零基础100讲》(第2讲) 数列

    文章目录 零 写在前面 一 概念定义 1 等差数列 2 等比数列 3 斐波那契数列 二 题目描述 三 算法详解 四 源码剖析 五 推荐专栏 六 习题练习 零 写在前面 这是 算法零基础100讲 专栏打卡学习的第 2 天了 如果觉得本专栏太贵
  • 《LeetCode零基础指南》(第九讲) 简单递归

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 递归的含义 2 递归调用阶乘 1 实现一个函数 2 递归出口 3 递推关系 3 为什么叫递归 二 题目分析 1 阶乘尾后零 2 将数字变成 0
  • 《LeetCode零基础指南》(第八讲) 二级指针

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 二级指针 2 解引用 3 力扣中的二级指针 4 内存申请模板 二 题目分析 1 翻转图像 2 转置矩阵 3 重塑矩阵 4 将一维数组转变成二维
  • 《LeetCode零基础指南》(第七讲) 二维数组

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 矩阵的定义 2 矩阵的水平翻转 3 矩阵的垂直翻转 4 矩阵的顺时针旋转 5 矩阵的逆时针旋转 6 矩阵的转置 7 二维数组 8 二维数组的索
  • 《LeetCode零基础指南》(第五讲) 排序API

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 排序简介 2 qsort 简介 3 qsort 调用 4 比较函数 1 函数原型 2 函数定义 3 简化写法 5 更多比较函数 二 题目分析
  • 《LeetCode零基础指南》(第三讲) 一维数组

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 顺序存储2 存储方式3 长度和容量4 数组的索引5 数组的函数传参 二 题目分析1 数组的查找2 数组的最小值3 斐波那契数列4 绝对值为 k 的数对5
  • js拼字符串,显示在页面上,出现undefined字样处理办法

    首先 xff0c 你需要明白为什么会出现undefined xff0c 这个东西是什么 xff1f undefined是说明你所使用的对象未定义 xff0c 为什么会未定义 xff1f 例如 xff1a var str str 61 str
  • 《LeetCode零基础指南》导读

    文章目录 一 出该专栏的目的 二 本专栏适宜人群 三 本专栏涉及的知识点 四 本专栏收费模式 五 付费玩家专属福利 六 专栏阅读须知 七 配套赠送福利 一 出该专栏的目的 由于之前的 算法零基础100讲 为很多真正零基础的同学造成了困扰 他
  • 《LeetCode零基础指南》(第一讲) 函数

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 函数简介2 函数的基本概念3 函数的基本结构4 返回类型5 函数名6 参数列表7 函数体8 返回值 二 题目分析1 整数乘法2 整数除法3 次幂函数4

随机推荐

  • 《算法零基础100讲》导读

    文章目录 一 为什么要学算法 二 本专栏适宜人群 三 本专栏涉及的算法 四 本专栏收费模式 五 收费玩家专属福利 六 专栏阅读须知 七 配套赠送福利 一 为什么要学算法 如果你只是想学会写代码 或许 算法与数据结构 并不是那么重要 但是 想
  • 《LeetCode零基础指南》(第二讲) 循环

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 语法规则2 简单应用3 初始化表达式1 xff09 初始化表达式外置2 xff09 初始化表达式内置 4 条件表达式5 执行表达式 二 题目分析1 2
  • 《LeetCode零基础指南》(第四讲) 指针

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 指针即地址 2 指针的定义 3 定义指针变量 4 取地址 5 数组的地址 6 解引用 7 内存申请 8 返回数组 9 范式 10 概念总结 二
  • 《LeetCode零基础指南》(第六讲) 贪心

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 二 题目分析 1 最大乘积差 2 三角形的最大周长 3 数组拆分 I 4 救生艇 5 摆动排序 II 6 分发饼干 7 最少操作使数组递增 8 有
  • 关于我,一个35岁的老程序员的心路历程

    打工十余年 xff0c 从盛大 网易 电魂 再到字节 xff0c 再到 130w粉 的知识博主 xff0c 我都经历了什么 xff1f 如果你现在正为是否要在 编程行业 深耕下去而头疼 xff0c 那么可以看一下我的故事 xff0c 希望可
  • 【英雄算法联盟】新人指引

    文章目录 一 知识交流1 发布笔记2 阅读笔记1 xff09 搜索栏2 xff09 星球标签 3 自我介绍4 交流群 二 精选专栏1 九日集训2 31天学会算法3 每日八股文 三 学习指导1 向我提问 四 免费资源 欢迎成为 英雄算法联盟
  • 球友的一个帖子,半夜三点给我整睡不着了……

    文章目录 一 起因二 建议1 括号和缩进2 仔细审题3 独立思考4 早起的好办法5 chatgpt会代替人类吗 xff1f 三 解决1 数据结构2 初始化3 判定 一 起因 事情的起因源自于星球里面一位球友的帖子 xff0c 本来三点醒来上
  • 夜深人静写算法(一)- 搜索入门

    新地址 xff1a 夜深人静写算法 xff08 一 xff09 搜索入门
  • FEC功能是什么?有哪些配置注意事项

    一 FEC功能产生的背景 光纤通信的两个重要发展方向是提高传输速率和延长传输距离 随着传输速率的提高 xff0c 信号传输过程中限制传输距离的因素变得更多 xff0c 比如色度色散 非线性效应 偏振模色散等 xff0c 影响两者的同时提升
  • ❤️粉丝专属福利❤️

    粉丝专属福利 语言入门 xff1a 光天化日学C语言 示例代码 语言训练 xff1a C语言入门100例 试用版 数据结构 xff1a 画解数据结构 源码 算法入门 xff1a 算法入门 指引 算法进阶 xff1a 夜深人静写算法 算法模板
  • 夜深人静写算法(四十三)- 线段树

    目录 一 引例 nbsp nbsp nbsp nbsp 1 区间最值 nbsp nbsp nbsp nbsp
  • 夜深人静写算法(九)- Dancing Links X(跳舞链)

    目录 nbsp nbsp 一 引例 nbsp nbsp nbsp nbsp nbsp nbsp 1 买点彩票压压惊 二 精确覆盖 nbsp nbsp nbsp nbsp nbsp nbsp 1 精确覆盖的定义
  • Redis底层详解(一) 哈希表和字典

    一 哈希表概述 首先简单介绍几个概念 xff1a 哈希表 xff08 散列表 xff09 映射 冲突 链地址 哈希函数 哈希表 xff08 Hash table xff09 的初衷是为了将数据映射到数组中的某个位置 xff0c 这样就能够通
  • 格式化日志提取模拟写入Elasticsearch

    1 目标 任务场景和目标 xff1a 已有服务的格式化日志 利用Ingest Pipeline提取通过Simulate Pipeline API模拟写入Elasticesearch 目的是对Pipeline文件进行验证 日志格式如下 xff
  • 小车yolo机械臂(一)ros下gazebo搭建小车(可键盘控制)安装摄像头仿真 加载yolo检测识别标记物体

    ros下gazebo搭建小车 xff08 可键盘控制 xff09 安装摄像头仿真 加载yolo检测识别标记物体 目录总览一 xff0c 项目代码下载二 xff0c ros下实现darknet ros YOLO V3 检测2 1 编译整个项目
  • 小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic

    目录总览 小车yolo机械臂 xff08 一 xff09 ros下gazebo搭建小车 xff08 可键盘控制 xff09 安装摄像头仿真 加载yolo检测识别标记物体 小车yolo机械臂 xff08 二 xff09 机械臂仿真 ros下从
  • ESP32-CAM实现局域网/远程视频传输

    手上这个ESP32 CAM买回来已经放了一个学期了 xff0c 最近才开始玩 xff0c 试了试用它来实现视频传输 局域网的视频传输比较简单 xff0c 基本能正确把例程烧进去就可以了 xff0c 这篇文章主要记录一下远程视频传输的实现 E
  • Debian 9.5  中文输入问题

    刚安装完debian9 5 发现输入法无法切换 xff0c 网页显示不了中文 找设置找不到修改的地方 xff0c 于是上网查教程 一开始按照教程需要安装 xff1a fcitx ui classic xff0c fcitx ui light
  • Hive_基于Hive的网站日志分析

    文章目录 概述1 引出需要进行数据预处理的必要性 toc 2 使用RegexSerDe处理apache或者ngnix日志文件 toc 3 根据不同业务拆表 toc 3 1 需求分析3 2 拆表 4 数据清洗 toc 4 1 Hive自定义函
  • python如何判断用户输入回车键?--关于input()函数的前世今生

    前言 最近在写代码的时候 xff0c 需要判断一下用户是不是敲了回车键 xff0c 于是写出了这样的代码 xff1a span class token keyword if span span class token builtin inp