Python基础循环语句详解(for、while)
*2.8 循环语句*
循环语句主要是两种,for循环和while循环,他们的主要用法和区别:
for循环用于确定的次数,这样会比while循环更加简洁比如我要循环代码多少次,次数明确,适合用for。
while循环多用于不确定的次数,比如我们的案例游戏:猜拳游戏,我们不知道循环几次才能够分出胜负,所以用while循环比较合适。
*2.8.1 for循环 *
其他编程语言不具备的:输入一个name的变量,成都的拼音,用for循环,打印出x,结果为:
end=“\t”是排在一排,并且空一格。
我们写一个数组,用for循环遍历里面的元素,len(a)是求a数组的长度,我们知道计数从0开始的,长度就是3。Print里面a[i]就是列表里面的每一个元素。运行结果就是下面的:
其中for i in range里面的i表示的是range()函数里面的每一个元素。
如果我们这样写代码:
因为range()
函数里面是获取a数组的长度,i代表range里面的每个元素,这个时候i=len(a)
,也就是说打印i就是获取a数组的长度,所以出现这个结果。而你a[i]就是获取数组里面的每一个元素,不是长度。所以代码print(i,a[i])
表示的是打印a数组的长度,并且打印a数组里面的每一个元素。
同样,我们若想重复某个字符串,可以使用range():
for i in range(3):print('我很棒')
range()函数里面可以填入循环的次数,打印的结果就是三遍“我很棒”。
练习:这是个实例,请用for循环代替复杂的print(),打印出每个人想要的物品。
d={'小明':'醋','小红':'油','小白':'盐','小张':'米'}
print(d['小明'])
print(d['小红'])
print(d['小白'])
print(d['小张'])
答案:
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}for i in d:print(d[i])
为何打印d[i]就是里面的值?
前面的例子非常清楚,打印字典的话出来的结果:
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}for i in d:print(i)
运行结果如下:
小明
小红
小白
小张Process finished with exit code 0
用循环遍历字典里面的元素,得到的结果就是字典里面的键。
但是我们如果进行进一步搜索:
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}for i in d:print(i[1])
得到的结果就是:
明
红
白
张Process finished with exit code 0
输入偏移量,我们可以很清晰知道,这是选择的字典的键对应的字符串。
但是如果我们这样:你要查询字典里面值
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}for i in d:print(d['小白'])
那就是字典名[键] 打印出来的就是对应键的值。
看到这里,我们知道for i in (字典名):
,print(字典名[i])
输出的结果就是字典里面的键,而字典名[键] 打印出来的就是对应键的值,那么下面:
d = {'小明':'醋','小红':'油','小白':'盐','小张':'米'}for i in d:print(d[i])
print(d[i])
表示就是字典里面遍历所有的键对应的值。
2.8.2 while循环
写while循环,最重要的是逻辑和步骤。
一般一个while循环包含以下的内容:
1.先决条件
2.放行条件(重要)
3.办事流程(重要)
我们下面看一个例子:
a = 0 #先定义变量a,并赋值
while a < 5: #设定一个放行条件:a要小于5,才能办事a = a + 1 # 满足条件时,就办事:将a+1print(a) # 继续办事:将a+1的结果打印出来
其中定义a变量,属于先决条件。==先决条件是非必需要求,根据需要决定。==比如后面求1-100的和,这个时候最好定义先决条件。其中最重要的是第二条和第三条,也就是第二和第三行代码。放行条件可以理解为,在现实里面开车出入小区,是本小区的业主,则放行让你进来;不符合这个条件的,我们不会让你进来。在while循环里面,就是符合这个条件,进行循环本体,不符合条件,就停止循环。
办事流程可以理解为,我进入了循环体需要进行什么操作,==循环本身存在的意义就是避免重复性劳动,进行批量操作。==上面的代码明显是将大量a+1的值赋给a这个变量,如果我一个个用print()
打印太麻烦了,所以我用循环来批量实现这个过程。
*2.8.2 While循环:*
下面是运行结果:
我们定义了i从0开始,并且范围(循环次数小于)5,打印的是第几次循环,用占位符%d
在后面要把占位的内容补回来。(python要用占位符是因为要格式化输出,见2.6.4)因为i取值为0,我们循环次数肯定是从第一次循环开始,如果不用%(i+1)的话,打印的结果就是当前是第0次循环,不符合我们的习惯。假设我们去掉后面的%(i+1),打印结果就是:
练习:你家的大门是密码门,密码是你的生日816。当输入密码错误的时候,会提示“请尝试输入密码:”。直到密码输入正确,就会提示“欢迎回家!”。
# 变量password用来保存输入的密码
password = ''
while password != '816':password = input("请尝试输入密码:")
print("欢迎回家!")
如果你的代码是这样:
# 变量password用来保存输入的密码
password = input("请尝试输入密码:")
while password != 816:print("请尝试输入密码:")
print("欢迎回家!")
将会进入死循环。
print()缩进的问题:
# 之前的例题
a = 0while a < 5:a = a + 1print(a)# 本题
a = 0while a < 5:a = a + 1
print(a)
第一个例子打印结果是1,2,3,4,5,因为print在while循环里面,第二个例子print在外面,打印的例子是5。为什么是5?因为循环的次数和过程与上个例子一样,只不过都没有打印出来,循环第四次的时候,a=4+1=5,这个时候a不小于5,所以下一次不执行循环,到while外面去,打印输出。
练习:1-100分别乘以5:
i = 1
while i<101 :print (i*5)i = i+1
布尔值的运算:
比如,while循环100次的任务,代码是这样写:
i = 1
while i < 101:print("打印这句话100遍")i += 1
我们学习了布尔值的运算,可以这么写代码:
i = 100
while i:print("打印这句话100遍")i = i-1
原理就是:
我们循环次数是100次,i就设置成100次。然后调用while循环,i在这里的值判断为True,就会执行下面的语句,打印一次“打印这句话100遍”,最后i=i-1
,i=99,while 99判断值也是True,继续执行……直到i减少为0的时候,程序判断为False,while 0停止循环。这种方式相比上一种更为简单,计算次数减少(因为上一种还要进行判断,i<100,i<99……)
*2.8.3实例:求1-100的和*
n = 100 #n表示的是我们要算100个数的和sum = 0 #sum是总和,为0的意思就是用来记录总和,但是不能对和有影响,一开始为0,然后经过循环慢慢加直到加最后第100个数,得出结果counter = 1 #counter相当于计步器,就是步长,等差数列里面的公差,每次加一个(循环的步长)while counter <= n : # 循环语句,当计数器小于等于100的时候,就是还没有完成循环任务。sum = sum+counter #这时候总和就等于从一开始sum的0一直加计数器counter += 1 # 每一次加完之后,让计数器+1print(“1-%d的和为:%d”%(n,sum))
另外,用for循环也可以写:
For循环range里面的括号里面有三个参数,range(1,100,1)分别表示从1-100的数字是个范围,不包括100.同时后面的1为步长。
sum = sum +i
为何这么写?这条语句完成了自循环,我们可以拿纸笔去模拟,如果这个时候是别的变量,那么sum永远等于0,所以不是我们想要的结果。
复习遇到的问题:变量改名的问题
# 求1-100的和
sum = 0
for i in range(1,101):summary = sum + iprint(summary)
我们用summary = sum + i
这个语句,最后的打印结果:
为何会出现这样的现象?我们拿纸笔去模拟一下,因为sum = sum + i
这条语句,相当于sum自增,不断循环增加。而上面定义变量的语句,sum没有得到增加,一直是0。所以最后的结果不对。
正确的结果截图:
同样,我们规定一开始还没有执行循环操作时的sum为0,这个时候不同于while循环,可以规定小于多少次数,for循环里面的range函数就有这个范围的功能,1-101就是从1-100的范围,没有步长默认为1。Sum=sum+i的意思就是,i为range范围里面的所有元素,不需要写i += 1是因为步长已经默认,步长为1,没有写出来。
python里面的内置函数:sum函数
sum函数用法也很简单,sum(可迭代对象,通常是列表、元组和集合,默认值)
a = list(range(1,101))
#print(a)
b= sum(a,1)
print(b)
这样就实现了求1-100的和。首先定义变量a,然后范围取出来,将变量a变为列表类型,定义变量b用sum函数,打印b。
综合练习:换座位问题
按照要求打印表里面的数据:
students = ['小红', '小刚', '小明']
students = ['小刚', '小明', '小红']
students = ['小明', '小红', '小刚']
方法一:append()方法:
students = ['小明','小红','小刚']
for i in range(3):student1 = students[0] # 获取第一个座位的学生 student1students = students[1:] # 让 student1 暂时离开,后面的学生座位都进一位。students.append(student1) # 将 student1 安排到最后一个座位print(students)
方法二:pop()方法:
print('提取只取不删:')
list1 = ['0','1','2','3']
print(list1[3])
print(list1)print('\n删除(del)只删不取:' )
list1 = ['0','1','2','3']
del list1[3]
print(list1)print('\n移除(pop)又取又删:')
list1 = ['0','1','2','3']
print(list1.pop()) # 默认删除最后一个元素,并返回该元素的值。
print(list1)
print(list1.pop(0)) # 也可指定删除某个元素,并返回该元素的值。
print(list1)students = ['小明','小红','小刚']
students = ['小明','小红','小刚']
for i in range(3):student1 = students.pop(0) # 运用pop()函数,同时完成提取和删除。students.append(student1) # 将移除的student1安排到最后一个座位。print(students)
Python基础循环语句详解(for、while)相关推荐
- smarty手册-smarty中foreach循环语句详解
原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...
- Python基础——循环语句
Python基础--循环语句 Python基础--循环语句 while循环 while循环与if....单分支结构的区别 while的四部循环法** for....in.....循环 break的使用 ...
- c语言输入循环语句,C语言中输入输出和循环语句详解.ppt
C语言中输入输出和循环语句详解 C语言的输入输和循环分支语句详解 本章主要向大家介绍下C语言的输入和输出功能以及循环分支语句的使用 第4章 顺序结构程序设计 3.1 C语言语句 3.2 赋值语句 3. ...
- python循环语句-详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- python的for语句-详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- python while循环if_详解python基础之while循环及if判断
wlile循环 while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子. #!/usr/bin/env python age = 24 #给age赋一个值 while Tru ...
- python基础知识~ 函数详解2
python~函数详解2 1 生成器函数 定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数 须知 yield和return一样,都可以返回数 ...
- python基础循环语句
python循环语句适合刚入门新手 python循环语句:一,while循环的基础语法.二,while循环的嵌套应用.三,for循环的基础语法.四,for循环的嵌套应用.五,循环中断. 一,while ...
- Python条件判断语句详解:if、else、switch都有了
导读:条件语句是指根据条件表达式的不同计算结果,使程序流转至不同的代码块.Python中的条件语句有--if语句.if- else-语句. 作者:黄传禄 张克强 赵越 来源:大数据DT(ID:hzda ...
最新文章
- PL/SQL高级编程
- json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 问题解决
- Day 04 第一印象可靠吗
- 华为复制加密门禁卡_MIUI12轻体验:关于模拟门禁卡,你想知道的都在这里
- 计算机视觉招聘_香港理工大学人工智能设计实验室科研招聘
- 服务器 .err文件,IIS 关闭HTTPERR(IIS日志)的方法
- python 文件读写(追加、覆盖)
- java 抽象封装多态_java面向对象(封装,继承,多态,抽象,接口的定义和实现)...
- “啁啾”看完这篇再不懂,放弃吧……
- 2008年6月6日今天终于调回公司本部啦,记录历史的一天。
- 使用Power Query从Web页面获取图像到Power BI报告中
- JS动态生成select下拉框的option并默认选中
- [工具推荐] IPv4 和 IPv6 网站测速工具
- 测试工具Monitor入门
- IBM Websphere MQ 基础3:Listener监听器
- vscode Android调试
- 解决笔记本装linux后触摸板无法用的问题
- 7天搭建物联网项目 STM32 + ESP8266 第 1 节 上传数据到云平台
- Bilibili支持了AV1编码,关于AV1编码你知道吗?
- VS Test: No connection could be made because the target machine actively refused it 127.0.0.1:6910