如何在 Python 中验证用户输入
要验证用户输入:
- 使用 while 循环进行迭代,直到提供的输入值有效。
- 检查输入值在每次迭代中是否有效。
- 如果该值有效,则跳出 while 循环。
# ✅ 验证用户输入的是否是整数num = 0while True:try:num = int(input("Enter an integer 1-10: "))except ValueError:print("Please enter a valid integer 1-10")continueif num >= 1 and num <= 10:print(f'You entered: {num}')breakelse:print('The integer must be in the range 1-10')# ----------------------------------------------# ✅ 验证用户输入的是否是字符串password = ''while True:password = input('Enter your password: ')if len(password) < 5:print('Password too short')continueelse:print(f'You entered {password}')breakprint(password)

第一个示例在 while 循环中验证数字用户输入。
如果 try 块成功完成,则用户输入一个整数。
num = 0while True:try:num = int(input("Enter an integer 1-10: "))except ValueError:print("Please enter a valid integer 1-10")continueif num >= 1 and num <= 10:print(f'You entered: {num}')breakelse:print('The integer must be in the range 1-10')
if 语句检查整数是否在 1-10 范围内,如果满足条件,我们就跳出 while 循环。
break 语句跳出最里面的 for 或 while 循环。
如果整数不在指定范围内,则 else 块运行并打印一条消息。
如果用户没有输入整数,则运行 except 块,我们使用 continue 语句再次提示用户。
continue 语句继续循环的下一次迭代。
在 while 循环中验证用户输入时,我们在输入无效时使用 continue 语句,例如在 except 块或 if 语句中。
如果输入有效,我们使用 break 语句退出 while 循环。
输入函数接受一个可选的提示参数并将其写入标准输出,而没有尾随的换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
注意,即使用户输入数字,input()函数也始终保证返回字符串。
我们可以在验证用户输入字符串时使用相同的方法。
这是一个提示用户输入的示例,直到他们输入至少 5 个字符长的值。
password = ''while True:password = input('Enter your password: ')if len(password) < 5:print('Password too short')continueelse:print(f'You entered {password}')breakprint(password)

while 循环不断迭代,直到用户输入一个长度至少为 5 的值。
如果值太短,我们使用 continue 语句继续下一次迭代。
如果该值至少有 5 个字符长,我们使用 break 语句作为输入有效。
如果需要检查多个条件,可以使用布尔值或和和运算符。
这是一个检查输入值是否至少有 5 个字符长且不在值列表中的示例。
password = ''common_passwords = ['abcde', 'asdfg']while True:password = input('Enter your password: ')if len(password) < 5 or password in common_passwords:print('Pick a strong password')continueelse:print(f'You entered {password}')breakprint(password)

if 语句检查密码是否少于 5 个字符或是否在常用密码列表中。
我们使用了布尔值或运算符,因此如果满足两个条件中的任何一个,if 块就会运行。
如果密码少于5个字符或者包含在常用密码列表中,我们继续下一次迭代,再次提示用户。
如果我们需要在验证输入时检查是否满足多个条件,请使用 and 布尔运算符。
password = ''common_passwords = ['abcde', 'asdfg']while True:password = input('Enter your password: ')if len(password) > 5 and password not in common_passwords:print(f'You entered {password}')breakelse:print('Pick a strong password')continueprint(password)
我们使用了 and 布尔运算符,因此要运行 if 块,必须满足两个条件。
密码必须超过 5 个字符,并且必须不在常用密码列表中。
如果条件满足,我们使用 break 语句退出 while True 循环。
如果条件不满足,我们使用 continue 语句继续下一次迭代。
相关文章:
如何在 Python 中验证用户输入
要验证用户输入: 使用 while 循环进行迭代,直到提供的输入值有效。检查输入值在每次迭代中是否有效。如果该值有效,则跳出 while 循环。 # ✅ 验证用户输入的是否是整数num 0while True:try:num int(input("Enter an integer 1-10: …...
JVM详解——类的加载
文章目录类的加载1、Java程序如何运行2、Java字节码文件3、类加载4、类加载的过程5、类加载器6、类的加载方式7、类的加载机制8、双亲委派机制9、破坏双亲委派机制类的加载 1、Java程序如何运行 首先通过Javac命令将.java文件编译生成.class字节码文件。 Javac是Java编译命令&a…...
Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程
目录 一、概述 二、在Ubuntu搭建nfs服务器 👉2.1 安装nfs服务器 👉2.2 创建nfs服务器共享目录 👉2.3 修改nfs服务器配置文件 👉2.4 重启nfs服务器 三、客户端访问nfs服务器共享目录 🎈3.1 在nfs客户端挂载服…...
Python-第九天 Python异常、模块与包
Python-第九天 Python异常、模块与包一、了解异常1. 什么是异常:2. bug是什么意思:二、异常的捕获方法1. 为什么要捕获异常?2. 捕获异常的语法3. 如何捕获所有异常?三、异常的传递性1.异常是具有传递性的四、Python模块1. 什么是模…...
博彩公司 BetMGM 发生数据泄露,“赌徒”面临网络风险
Bleeping Computer 网站披露,著名体育博彩公司 BetMGM 发生一起数据泄露事件,一名威胁攻击者成功窃取其大量用户个人信息。 据悉,BetMGM 数据泄漏事件中,攻击者盗取了包括用户姓名、联系信息(如邮政地址、电子邮件地址…...
初探Mysql反向读取文件
前言 Mysql反向读取文件感觉蛮有意思的,进行了解过后,简单总结如下,希望能对在学习Mysql反向读取文件的师傅有些许帮助。 前置知识 在Mysql中存在这样一条语句 LOAD DATA INFILE它的作用是读取某个文件中的内容并放置到要求的表中&#x…...
地图坐标系大全:常用地图坐标系详解与转换指南
介绍地图坐标系的基本概念和原理地图坐标系是用于描述地图上位置的数学模型。它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位。不同的地图坐标系采用不同的基准面和投影方式,因此会有不同的坐标系参数,不同的坐…...
使用 URLSearchParams 解析和管理URL query参数
介绍 首先 URLSearchParams是一个构造函数,会生成一个URLSearchParams对象,参数类型: 不传 | string | object | URLSearchParams, 并且遇到特殊字符它会自动帮我们encode 和 decode const ur…...
一台电脑安装26个操作系统(windows,macos,linux,chromeOS,Android,静待HarmonyOS)
首先看看安装了哪些操作系统1-4: windows系统 四个5.Ubuntu6.deepin7.UOS家庭版8.fydeOS9.macOS10.银河麒麟11.红旗OS12.openSUSE Leap13.openAnolis14.openEuler(未安装桌面UI)15.中标麒麟(NeoKylin)16.centos17.debian Edu18.fedora19.oraclelinux(特别…...
Python配置文件管理之ini和yaml文件读取
1. 引言 当我们设计软件时,我们通常会花费大量精力来编写高质量的代码。但这往往还不够,一个好的软件还应该考虑其整个系统,如测试、部署、网络等。其中最重要的一个方面是配置管理。 良好的配置管理应允许在任何环境中执行软件而不更改代码…...
实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?
上一节课,我们做了一些理论知识的铺垫性讲解,讲到了两种开发模式,基于贫血模型的传统开发模式,以及基于充血模型的DDD开发模式。今天,我们正式进入实战环节,看如何分别用这两种开发模式,设计实现一个钱包系统。话不多说,让我们正式…...
webpack当中的代码分割详解
A.代码分割方法一:将原来的单入口文件改为多入口文件 将不同的文件例如js代码文件分为入口文件和测试文件,这个时候打包出来的代码就会根据不同的文件单独打包成属于他们自己的文件 例如以下为单入口文件: entry: ./src/js/index.js 多入口文件:(在输出…...
【SSM】Spring对IoC的实现方式DI详讲
控制反转的一种实现方式——依赖注入一、IoC 控制反转(Overview)依赖注入(DI)- Overview利用 IoC(控制反转)这种思想有什么好处呢?二、依赖注入的方式setter 方式(xml配置中的proper…...
【QT 5 相关实验-示波器-学习笔记-示波器组件练习与使用总结】
【QT 5 相关实验-示波器-学习笔记-示波器组件练习与使用总结】1、概述2、实验环境3、参考资料-致谢4、自我提升实验效果视频演示5、代码练习-学习后拆解-实验步骤(1)头文件部分-"mwaveview.h"(2)cpp文件部分-"mwav…...
二维数组中的查找(两种解法,各有千秋)
凡事都有可能,永远别说永远。——《放牛班的春天》今天一题为再一个行列都有序的二维数组中寻找一个目标值,我们第一时间想到的可能是很暴力的解法,例如从头到尾进行遍历,这样能做出来,但是借用武忠祥老师的一句话&…...
quartz使用及原理解析
quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度…...
Datawhale组队学习:大数据 D2——分布式文件系统(HDFS)
妙趣横生大数据 Day2三、Hadoop 分布式文件系统(HDFS)1. 分布式文件系统2. HDFS 简介3. HDFS 体系结构4. HDFS存储原理数据冗余存储数据存储策略数据错误与恢复5. HDFS数据读写过程读写过程HDFS故障类型和其检测方法HDFS编程实验1. 本地和集群文件间操作2. 基本文件操作3. Hado…...
CCIE重认证-300-401-拖图题全
拖图 拖图题 编程 snippet;192.168.5.0,mask 255.255.255.0;number是192.168.5.0;mask是255.255.255.0 snippets;edit-config对config,loopback对name 100,address对primary,mask…...
如何动态的创建类?type的其他用法?什么是元类,如何自定义元类?
1、python中一切都是对象,类也不例外,type是object的子类,是创建类的类。 如何动态的创建一个类? 用脚丫子创建 用脑子创建 不会 不知道什么事动态类 大家可能会有一堆的疑惑,是的我也是有很多疑惑那让我们一起来探个…...
XCP实战系列介绍15-XCP故障排查指导
本文框架 1.概述2. 通过调试器排查2.1 打开Det功能2.2 如何确定Det ErrorCode3. 通过XCP应答报文排查3.1 FE报文组成及故障码对应关系3.2 举个例子1.概述 前面几篇文章我们介绍了基于Davinci开发工具的XCP配置指导,配好了,代码也生成了,但是程序一定能正常跑起来吗?就算软…...
别再折腾虚拟机了!用Docker 5分钟搞定Oracle 10g测试环境(附阿里云镜像源)
5分钟极速部署Oracle 10g:Docker化开发环境实战指南 每次需要搭建Oracle测试环境时,你是否也经历过这样的痛苦?下载几个GB的安装包、配置复杂的系统参数、等待漫长的安装过程,最后可能还会遇到各种依赖问题。作为一名长期与Oracle…...
喜马拉雅FM专辑下载器:离线收听与个人音频管理的实用方案
喜马拉雅FM专辑下载器:离线收听与个人音频管理的实用方案 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 如果您经常收…...
Vue/React项目实战:集成docx-preview实现动态报表预览与下载功能
Vue/React项目实战:动态报表预览与下载的工程化实现 在数据驱动的企业应用中,动态生成和预览业务报表是刚需功能。想象这样一个场景:销售团队在CRM系统中筛选季度数据后,需要立即查看格式规范的业绩分析报告,并能一键…...
MySQL技巧(八) :死锁解决与实战案例
在数据库高并发场景下,死锁是一个绕不开的经典难题。两个或多个事务相互持有对方需要的锁,导致都无法继续执行,就像两辆车在狭窄路口互不相让。本文将带你从原理到实战,掌握死锁的排查、解决和预防全流程。一、死锁快速定位当应用…...
OpenClaw+Qwen3-32B双剑合璧:个人知识库的智能维护方案
OpenClawQwen3-32B双剑合璧:个人知识库的智能维护方案 1. 为什么需要自动化知识管理 作为一个长期依赖个人知识库的内容创作者,我发现自己正陷入"信息过载"的困境。每天需要处理的网页文章、PDF报告、会议录音等碎片化内容超过20份ÿ…...
VSCode远程连接报错?手把手教你修复settings.json文件(附常见错误排查)
VSCode远程连接报错终极排查指南:从settings.json修复到SSH配置优化 当你正准备通过VSCode远程连接服务器投入工作时,突然弹出的Failed to write remote.SSH.remotePlatform报错就像一盆冷水浇下来。更令人抓狂的是,明明命令行SSH连接一切正常…...
手把手教你解决Unity视频播放问题:H264编码设置与RawImage的正确用法
Unity视频播放全攻略:H264编码优化与RawImage实战解析 在Unity项目开发中,视频播放功能看似简单,却暗藏诸多技术细节。许多开发者都曾遇到过视频不同步、颜色失真或性能低下的困扰。本文将深入剖析视频播放的核心技术要点,从编码格…...
Cesium1.95内存优化实战:从3D Tiles到GPU Instancing的完整避坑指南
Cesium1.95内存优化实战:从3D Tiles到GPU Instancing的完整避坑指南 在三维地理信息系统和智慧城市项目中,Cesium作为领先的WebGL框架,其性能表现直接决定了复杂场景的流畅度。当遇到大规模模型加载时,内存溢出成为开发者最头疼的…...
服务器频繁报soft lockup?手把手教你排查高负载进程与内核死锁问题
服务器频繁报soft lockup?手把手教你排查高负载进程与内核死锁问题 最近在运维工作中,你是否遇到过服务器突然弹出"kernel:NMI watchdog: BUG: soft lockup - CPU#X stuck for XXs!"这样的警告信息?这种内核软死锁问题看似不会立即…...
League-Toolkit:英雄联盟玩家的智能游戏助手
League-Toolkit:英雄联盟玩家的智能游戏助手 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一款基于…...
