Python3 基础学习笔记 C06【用户输入和 while 循环】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实战》、《跟老齐学Python:数据分析》和《Python大学实用教程》畅销图书。


Python3 基础学习笔记第六章【用户输入和 while 循环】

目录

  • 【6.1】函数 input() 的工作原理
    • 【6.1.1】使用 int() 来获取数值输入
    • 【6.1.2】求模运算符
    • 【6.1.3】在 Python 2.7 中获取输入
  • 【6.2】while 循环
    • 【6.2.1】使用 while 循环
    • 【6.2.2】让用户选择退出循环
    • 【6.2.3】使用标志
    • 【6.2.4】使用 break 退出循环
    • 【6.2.5】在循环中使用 continue
  • 【6.3】使用 while 循环来处理列表和字典
    • 【6.3.1】在列表之间移动元素
    • 【6.3.2】删除包含特定值的所有列表元素
    • 【6.3.3】使用用户输入来填充字典


【6.1】函数 input() 的工作原理

函数 input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其储存在一个变量当中,以方便你使用;函数 input() 返回为 string 类型

message = input("Please tell me your name:")
print("Hello , " + message + "!")

输出结果如下:

Please tell me your name:anliy
Hello , anliy!

进阶:

message = "Please tell me your name so that we can personalize the messages you see."
message += "\nWhat's your first name?"
name = input(message)
print("\nHello , " + name + "!")

输出结果如下:

Please tell me your name so that we can personalize the messages you see.
What's your first name?trhxHello , trhx!

【6.1.1】使用 int() 来获取数值输入

使用函数 input() 时,Python会将用户输入解读为字符串:

>>> age = input("How old are you?")
How old are you?19
>>> age
'19'

为了解决这个问题,可以使用函数 int() ,它让Python将输入视为数值:

>>> age = input("How old are you?")
How old are you?19
>>> age = int(age)
>>> age
19

实例:

age = input("Please tell me your age:")
age = int(age)
if age >= 18:print("You are old enough to go to the Internet bar!")
else:print("You are not old enough to go to Internet bar!")

输出结果如下:

Please tell me your age:17
You are not old enough to go to Internet bar!

【6.1.2】求模运算符

处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数:

>>> 4 % 3
1
>>> 5 % 3
2
>>> 8 % 2
0
>>> 7 % 3
1

【6.1.3】在 Python 2.7 中获取输入

如果使用 Python 2.7,应该使用函数 raw_input() 来提示用户输入,这个函数与 Python 3 中的 input() 一样,也将输入解读为字符串;Python 2.7 也包含函数 input(),但它将用户输入解读为Python代码,并尝试运行它们

【6.2】while 循环

for 循环用于针对集合中的每一个元素的一个代码块,而 while 循环不断地运行,直到指定的条件不满足为止

【6.2.1】使用 while 循环

一个简单的 while 循环:

num = 1
while num < 5:print(num)num += 1

输出结果如下:

1
2
3
4

【6.2.2】让用户选择退出循环

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program."
message = " "
while message != 'quit':message = input(prompt)print(message)

运行程序:


Tell me something, and I will repeat it back to you:
Enter 'quit' to end the program.Hello everyone!
Hello everyone!Tell me something, and I will repeat it back to you:
Enter 'quit' to end the program.Hello again!
Hello again!Tell me something, and I will repeat it back to you:
Enter 'quit' to end the program.quit
quit

【6.2.3】使用标志

在要求很多条件都满足才继续运行的程序中,可以定义一个变量,用于判断整个程序是否处于活动状态,这个变量称为标志

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program."
active = True
while active:message = input(prompt)if message == 'quit':active = Falseelse:print(message)

运行结果与6.2.2一致

【6.2.4】使用 break 退出循环

要立即退出 while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break 语句,break 语句用于控制程序流程,可使用它来控制哪些代码将执行,哪些代码不执行

prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\nEnter 'quit' when you are finished."
active = True
while active:city = input(prompt)if city == 'quit':breakelse:print("I'd love to go to " + city.title() + "!")

运行程序:


Please enter the name of a city you have visited:
Enter 'quit' when you are finished.Shanghai
I'd love to go to Shanghai!Please enter the name of a city you have visited:
Enter 'quit' when you are finished.Beijing
I'd love to go to Beijing!Please enter the name of a city you have visited:
Enter 'quit' when you are finished.quit

在任何Python循环中都可以使用break语句,例如,可以使用break语句来退出遍历列表或字典

【6.2.5】在循环中使用 continue

要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用 continue 语句,它不像 break 语句那样不再执行余下的代码并退出整个循环,例如,从1到10只打印其中奇数:

number =0
while number < 10:number += 1if number % 2 == 0:continueprint(number)

输出结果如下:

1
3
5
7
9

【6.3】使用 while 循环来处理列表和字典

for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素,要在遍历列表的同时对其进行修改,可使用while循环

【6.3.1】在列表之间移动元素

unconfirmed_users = ['alice' , 'brian' , 'candace']
confirmed_users = []
while unconfirmed_users:current_user = unconfirmed_users.pop()print("Verifying user: " + current_user.title())confirmed_users.append(current_user)
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:print(confirmed_user.title())

首先创建一个未验证用户列表,其中包含用户Alice、Brian和Candace,还创建了一个空列表,用于存储已验证的用户,程序中的 while 循环将不断地运行,直到列表 unconfirmed_users 变成空的。在这个循环中,函数pop() 以每次一个的方式从列表 unconfirmed_users 末尾删除未验证的用户。由于Candace位于列表 unconfirmed_users 的末尾,因此其名字将首先被删除、存储到变量 current_user 中并加入到列表 confirmed_users 中。接下来是Brian,然后是Alice

为模拟用户验证过程,我们打印一条验证消息并将用户加入到已验证用户列表中。未验证用户列表越来越短,而已验证用户列表越来越长。未验证用户列表为空后结束循环,再打印已验证用户列表:

Verifying user: Candace
Verifying user: Brian
Verifying user: AliceThe following users have been confirmed:
Candace
Brian
Alice

【6.3.2】删除包含特定值的所有列表元素

可以使用方法 remove() 来删除列表中特定的值,但如果要删除的值在列表中出现了多次,方法 remove() 就不管用了,如果要删除列表中所有包含特定值的元素则可以使用 while 循环:

names = ['alice' , 'candace' , 'alice' , 'brian' , 'alix' , 'candace' , 'heliy']
print(names)
while 'candace' in names:names.remove('candace')
print(names)

输出结果如下:

['alice', 'candace', 'alice', 'brian', 'alix', 'candace', 'heliy']
['alice', 'alice', 'brian', 'alix', 'heliy']

使用方法 remove() 做对比:

names = ['alice' , 'candace' , 'alice' , 'brian' , 'alix' , 'candace' , 'heliy']
print(names)
names.remove('candace')
print(names)

输出结果如下:

['alice', 'candace', 'alice', 'brian', 'alix', 'candace', 'heliy']
['alice', 'alice', 'brian', 'alix', 'candace', 'heliy']

【6.3.3】使用用户输入来填充字典

responses = {}#设置一个标志,指出调查是否继续
polling_active = Truewhile polling_active:#提示输入被调查者的姓名和回答name = input("\nWhat's your name?")response = input("What kind of fruit do you like?")#将答卷储存在字典中responses[name] = response#询问是否还有其他人要参与回答repeat = input("Would you like to let another person respond?(Yes/No)")if repeat == 'No':polling_active = False#调查结束,显示结果
print("\n------ Poll Results ------")
for name , response in responses.items():print(name + " like " + response + ".")

运行程序:

What's your name?TRHX
What kind of fruit do you like?apple
Would you like to let another person respond?(Yes/No)YesWhat's your name?TRHXCC
What kind of fruit do you like?banana
Would you like to let another person respond?(Yes/No)No------ Poll Results ------
TRHX like apple.
TRHXCC like banana.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PWN-COMPETITION-GeekChallenge2021

PWN-COMPETITION-GeekChallenge2021check in恋爱小游戏ret2xxone恋爱小游戏2.0easyfmteasycanaryret2babypwn777check in 66s内解答200道四则运算的题目即可getshell 参与运算的数和运算符都会打印&#xff0c;直接写脚本即可 # -*- coding:utf-8 -*- from pwn import * cont…

ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

开篇&#xff1a;上一篇我们了解了所谓的请求处理管道&#xff0c;在众多的事件中微软开放了19个重要的事件给我们&#xff0c;我们可以注入一些自定义的业务逻辑实现应用的个性化设计。本篇&#xff0c;我们来看看WebForm模式下的页面生命周期。 &#xff08;1&#xff09;Par…

Python3 基础学习笔记 C07【函数】

CSDN 课程推荐&#xff1a;《8小时Python零基础轻松入门》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Python&#xff1a;Django实…

REVERSE-COMPETITION-GeekChallenge2021

REVERSE-COMPETITION-GeekChallenge2021Re0刘壮桌面美化大师买ActivityRe1调试珍惜生命new_languageeasypycBrute_forcewin32wasm猜拳have_a_teaRe0 64位exe&#xff0c;ida打开&#xff0c;main函数中没发现什么重要的逻辑 ShiftF12打开字符串窗口&#xff0c;直接找到flag明…

ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

开篇&#xff1a;上一篇我们了解了在WebForm模式下一个Page页面的生命周期&#xff0c;它经历了初始化Init、加载Load以及呈现Render三个重要阶段&#xff0c;其中构造了页面控件树&#xff0c;并对页面控件树进行了大量的递归操作&#xff0c;最后将与模板结合生成的HTML返回给…

Python 3 报错 TypeError: object() takes no parameters【新手必过坑之一】

在学习 Python 3 类的时候&#xff0c;有如下程序&#xff1a; class Dog():def __init__(self,name,age):#初始化属性name和ageself.name nameself.age agedef sit(self):#模拟小狗被命令时蹲下print(self.name.title() " is now sitting.")def roll_over(self)…

REVERSE-PRACTICE-CTFSHOW-6

REVERSE-PRACTICE-CTFSHOW-6真的是签到批量生产的伪劣产品来一个派森snake真的是签到 附件是一个压缩包&#xff0c;解压需要密码&#xff0c;但是题目没有给到解压密码 实际上是压缩包伪加密&#xff0c;将如图橙色处原本的字节0x09改为0x00&#xff0c;保存后即可解压出文件…

Python3 基础学习笔记 C08 【类】

CSDN 课程推荐&#xff1a;《8小时Python零基础轻松入门》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Python&#xff1a;Django实…

ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别

【考点】 ASP.NET中的控件类型理解。 【出现频率】 ★★★☆☆ 【解答】 ASP.NET的控件包括WEB服务器控件、WEB用户控件、WEB自定义控件、HTML服务器控件和HTML控件。HTML控件、HTML服务器控件和WEB服务器控件之间的区别如下所示。 q HTML控件&#xff1a;这完全是浏览器端…

Python3 基础学习笔记 C09【文件和异常】

CSDN 课程推荐&#xff1a;《8小时Python零基础轻松入门》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Python&#xff1a;Django实…

REVERSE-PRACTICE-CTFSHOW-7

REVERSE-PRACTICE-CTFSHOW-7签层饼Tea_tube_poteasy贪吃蛇的秘密签层饼 32位exe&#xff0c;ida打开 main函数中&#xff0c;输入两个大于0的数字&#xff0c;如果flag_num为0&#xff0c;则将两个输入作为flag的一部分&#xff0c;打印flag 选中input_1按x查找交叉引用&…

HttpModule与HttpHandler详解(转)

ASP.NET对请求处理的过程&#xff1a; 当请求一个*.aspx文件的时候&#xff0c;这个请求会被inetinfo.exe进程截获&#xff0c;它判断文件的后缀&#xff08;aspx&#xff09;之后&#xff0c;将这个请求转交给 ASPNET_ISAPI.dll&#xff0c;ASPNET_ISAPI.dll会通过http管道&am…

Windows 系统中 Python下 Pygame 的安装

Pygame是跨平台Python模块&#xff0c;专为电子游戏设计&#xff0c;可用于管理图形、动画乃至声音&#xff0c;建立在SDL基础上&#xff0c;允许实时电子游戏研发而无需被低级语言&#xff08;如机器语言和汇编语言&#xff09;束缚&#xff0c;通过使用Pygame来处理在屏幕上绘…

REVERSE-PRACTICE-CTFSHOW-8

REVERSE-PRACTICE-CTFSHOW-8Matara OkinaanniuwarmupeMatara Okina apk文件&#xff0c;jadx-gui打开 MainActivity什么都没有&#xff0c;来到FlagActivity scheme&#xff0c;host这些看不懂 第44行有个ans和bytes的比较&#xff0c;ans已知&#xff0c;bytes是从某个地方获…

Html控件和Web控件(转)

作为一名ASP.NET的初学者&#xff0c;了解并且区别一些混淆概念是很必须的&#xff0c;今天这篇博文 就是主要向大家介绍一下Html控件和Web控件。在ASP.net中&#xff0c;用户界面控件主要就是 Html控件和Web控件&#xff0c;在前台页面上看&#xff0c;两种控件非常相似&…

VMware Pro 14 安装 Ubuntu 18.04 详细教程

目录● 安装步骤1.下载安装 VMware Workstation Pro 142.下载 Ubuntu 18.04 系统3.在 VMware 中创建虚拟机4.在虚拟机上安装 Ubuntu 系统● 安装过程中可能会出现的一些问题 1.在虚拟机上安装 Ubuntu 系统的过程中卡死不动 2.Ubuntu 不能全屏显示● 安装步骤 1.下载安装 VMware…

C语言实现TEA系列加解密算法

C语言实现TEA系列加解密算法TEA加解密XTEA加解密XXTEA加解密TEA加解密 #include <stdio.h> #include <stdint.h>//加密函数 void encrypt(uint32_t* v, uint32_t* k) {uint32_t v0 v[0], v1 v[1], sum 0, i;uint32_t delta 0x9e3779b9;uint32_t k0 k[0], k1 …

Web服务器控件和HTML控件的区别与联系

我们知道&#xff0c;在ASP.NET中&#xff0c;使用了两类控件&#xff0c;一类是HTML控件&#xff0c;还有一类是WEB控件。 WEB控件我们已经很熟悉&#xff0c;因为它是ASP.NET提供&#xff0c;一般关于ASP.NET的教程文章都会仔细介绍这些控件的详细应用技巧&#xff1b; 而H…

Hexo 博客优化之博客美化系列(持续更新)

2022-01-25 更新&#xff1a;博客新地址&#xff1a;https://www.itbob.cn/&#xff0c;文章距上次编辑时间较远&#xff0c;部分内容可能已经过时&#xff01; 本文将讲述一些 Hexo 博客的美化&#xff0c;本文以作者 luuman 的 spfk 主题和作者 xaoxuu 的 Material X 主题为例…

C语言实现AES加解密算法

C语言实现AES加解密算法AES加解密AES加解密 #include <stdio.h> #include <stdint.h> #include <memory.h> /****************************************************************************************************************/ typedef enum {AES_CYPH…