做图解的网站,浅灰色做网站背景,wordpress模板下载失败,万户网络网站管理系统#xff08;请先看置顶博文#xff09;https://blog.csdn.net/GenuineMonster/article/details/104495419 学了这么久的Python#xff0c;大家肯定会好奇#xff0c;不是说机器学习吗#xff1f;不是人机交互吗#xff1f;不是人工智能吗#xff1f;怎么我学了Python都十…请先看置顶博文https://blog.csdn.net/GenuineMonster/article/details/104495419 学了这么久的Python大家肯定会好奇不是说机器学习吗不是人机交互吗不是人工智能吗怎么我学了Python都十节课了还没有写出能和电脑交互的程序不要着急第十一节课后我们学习Python的内容就逐渐变难。当然从这节课开始我们将会写一些要求用户输入的一些程序简称交互式程序。
目录
一、输入函数input和数据类型转换函数int
1、input函数的些许知识
2、int函数的些许知识
二、while循环
1、while循环讲解及举例
2、在while循环中使用标志
3、break和continue
4、用while循环处理列表和字典
A、在列表之间移动元素
B、删除包含特定值的所有列表元素
C、使用while循环填充字典 一、输入函数input和数据类型转换函数int
函数用途input获取用户输入的字符串int将用户输入的数值转换为整型
1、input函数的些许知识
我们接下来编写第一个交互式程序我输入的是“I love Python”忽略绿色电脑回复给我的也是这样的一句话。
# 定义一个变量存储用户输入的字符串
# input函数括号内的话将会被打印显示并期待用户的输入。
messageinput(Tell me something, and I will repeat it back to you: )
print(message) 对上面的代码进行一个解释函数input接受一个参数即要向用户显示的提示或说明让用户知道该如何做。在这个例子中Python运行第一行代码时用户看到提示让输入一句话程序等待用户输入并在用户按回车键后继续运行。输入的字符串存储在变量message中最后被print函数输出。
我们学习input函数之后就会接触到越来越多的需要用户输入的程序因此输出一个用户提示信息是有必要的。例如
name input(Please enter your name: )
print(Hello, name ! ) 如果提示超过一行可以将提示存储在一个变量中再将该变量传递给函数input。如此一来即便提示超过一行input语句也非常清楚。例如
prompt If you tell us who you are,we can personalize the messgaes you see.
prompt \nWhat is your first name?
name input(prompt)
print(\nHello, name !) 上面这个例子演示了一种创建多行字符串的方式第1行将信息的前半部分存储在变量prompt中在第2行中运算符将“What is your first name ”追加到prompt中
2、int函数的些许知识
这里我们使用一个例子来引出int函数
age input(How old are you? ) # 提示用户输入用户的年龄
age 2 # 将用户输入的年龄增加2
print(age) # 输出现在的age 为什么会报错呢就写了三行代码就报错了21 2 23直接输出23不就好了吗这就是我文章开头说到的input函数会将用户输入的内容以字符串的形式保存起来字符串2所以编译器会报错。那为了解决这个问题我们可以用int函数来进行对用户年龄的获取。改正代码如下所示
age input(How old are you? ) # 提示用户输入用户的年龄
age int(age) # 将用户输入的年龄字符串转换为整形
age age 2
print(age) #输出现在的age 除此以外我们还有其他众多的转换函数例如float()我后期也会介绍。在第一节的最后以求模运算符结束。“%”就是求模运算符它将两个数相除并返回余数。所以当一个数可被另一个数整除时余数就为0了所以我们可以利用%来判断一个数是奇数还是偶数下面的代码我们就使用了int函数将用户输入的数值字符串转换为整形在输出时我们又使用str将int型转换为字符串类型用于输出
number input(Enter a number, and I will tell you if it is even or odd: ) # 提示用户输入一个数字并获取用户的输入
number int(number) # 将用户的输入转换为数字整形 if number % 2 0: # 判断数字是否为偶数是的话就输出下面一条语句print(\nThe number str(number) is even.)
else: # 数字为奇数print(\nThe number str(number) is odd.) 二、while循环
1、while循环讲解及举例
一看到循环就想起了之前学过的for循环那while循环和for循环有什么区别呢for循环习惯用于遍历集合中的每个元素而while循环不断地运行直到不满足指定的条件为止。先举个例子
number 1 # 给number初始值
while number 5: # 循环语句number不大于5别想从循环出来 print(number)number 1 上述代码预先设置了循环的结束条件那么我们是否可以先让程序运行起来通过检查用户的输入来决定程序是否要继续答案是肯定的要不然我们开始游戏后如何退出游戏呢
prompt \nTell me something, and I will reapt it back to you:
prompt \nEnter quit to end the program.
# 以上代码就是多行提示输出的又一例子
message # 将message设置为空的字符串让编译器首次检验的时候有可供检查的东西
while message ! quit:message input(prompt)print(message) 上述2个示例代码在使用while循环时都使用了条件判断第一个是number不大于5就一直循环第二个是只要用户不输入“quit”程序就一直运行。那之前学的if条件语句中的检验多个条件的方法在这里还是否适用呢我们改写一下第二个示例代码让用户在输入quit和exit中的任何一个时才退出程序
prompt \nTell me something, and I will reapt it back to you:
prompt \nEnter quit or exit to end the program.
# 以上代码就是多行提示输出的又一例子
message # 将message设置为空的字符串让编译器首次检验的时候有可供检查的东西
while (message ! quit and message ! exit):# 加不加括号都一样message input(prompt)print(message) 细心的同学可能就发现了谁退出游戏时点了退出还会显示“退出游戏”四个字。我们可以使用if条件语句如果输入的是“quit”或者“exit”就打印了。
2、在while循环中使用标志 上述让程序是否继续的条件有两个那么有多个时我们将会如何组织代码使其更加简约易读呢那就是使用标志。在要求很多条件同时满足才能继续运行的程序中我们可以定义一个变量用于判断整个程序是否还处于活动状态。这个变量被称为标志也就是这个程序的信号灯可以让程序在标志为True时继续运行并在任何事件导致标志的值为False时让程序停止运行。如此一来在while语句中就只需要检查一个条件把全部测试放在其他地方进而达到代码美观、易读、功能还完整的目的。我们还以输入“quit”结束的那个程序为例
prompt \nTell me something, and I will reapt it back to you:
prompt \nEnter quit or exit to end the program.
# 以上代码就是多行提示输出的又一例子active True
while active: # 表示当active为True时就循环message input(prompt) # 让用户输入字符串if message quit: # 如果用户输入quitactive False # 改变标志的状态else: # 否则还是输出messageprint(message) 假设我们把“如果用户输入的是exit也退出程序”转变为代码加进去只需要在if语句下增添elif语句即可。由此可见这段程序的可扩展性还是比较强的。
3、break和continue
Python里的break和continue与C语言里的break和continue是一样的
break要立即退出while循环不再运行循环中余下的代码也不管条件测试的结果如何可使用break语句。
continue返回到循环开头并根据条件测试结果决定是否继续执行循环可使用continue语句。举例如下
prompt \nPlease enter the name of a city you have visited:
prompt \n(Enter quit when you are finished.)while True:city input(prompt)if city quit:breakelse:print(I would love to go to city.title() !) 注在任何Python循环中都可使用break语句。例如可以使用break语句来退出遍历列表或字典的for循环。
current_number 0
while current_number 10:current_number 1if current_number % 2 0:continueprint(current_number) 建议每写一个循环语句都要格外注意避免死循环、避免缩进问题。如果不小心掉进了死循环那么可以使用“CtrlC”或关掉终端窗口来结束死循环的程序。
4、用while循环处理列表和字典 我们之前学过使用for循环对列表、字典进行增删改查现学的while同样也可以完成上述操作。for循环是一种遍历列表的有效方式但在for循环中不应修改列表否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改可使用while循环。通过将while循环同列表和字典结合起来使用可收集、存储并组织大量输入供以后查看和显示。
A、在列表之间移动元素
问题情景A列表包含新注册但还未验证的网站用户验证这些用户后将他们移到另一个已验证用户列表中
# 首先创建一个待验证用户列表以及一个用于存储已验证用户的空列表
unconfirmed_users [alice,brian,candace]
confirmed_users []
# 使用while循环验证每个未验证的用户直到没有为止
# 验证一个用户之后立马将其追加到已验证用户的列表里
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) 细心观察三个人的名字在两个列表间实现了移动他们之间的相对位置也发生了变化这是因为使用了pop方法从第一个列表的末尾开始删除用户append方法增加用户时又将刚刚弹出的用户增加到列表的第一个位置
B、删除包含特定值的所有列表元素 在前面的课程中我们学习了remove方法来删除列表中的特定值这种方法只适合待删除元素在列表中只出现一次的情况。如果待删除元素在列表中出现多次那么就得借助while循环语句。例如
要删除列表中所有的“cat”
pets [dog,cat,dog,goldfish,cat,rabbit,cat]
print(pets)
while cat in pets:pets.remove(cat)
print(pets) 有人就说用一个for循环代替while循环也能实现。实现是绝对没问题的但是具体过程还是有很大区别的while循环是只要发现列表里还有“cat”发现的过程似乎是遍历一次列表就继续循环执行remove也就是说针对上面代码举的例子while循环代码至少遍历列表三次因为有三个cat而for循环是按照列表中的元素一个一个找过去是“cat”就删掉不是就继续循环直到列表末尾。for循环只遍历了一次列表以上是我个人看法欢迎指正
C、使用while循环填充字典
for循环可以对字典进行“增”while循环也不甘示弱。例如下面一段调查信息的程序
responses {}# 设置一个标志指出调查是否继续
polling_active Truewhile polling_active:#提示输入被调查者的名字和回答name input(\nWhat is your name? )response input(which moutain would you like to climb someday? )# 将答卷存储在字典中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 would like to climb response .) 如果忘记了字典的增删改查就复习一下尤其是items容易被遗忘。