'''
while循环三步走:
① 定义一个计数器,一般为i = 0或者i = 1
② 编写循环条件,如while i <= 100:
③ 在循环体内部(有缩进)更新计数器的值举个栗子:循环输出100遍老婆大人,我错了
'''
# 定义一个计数器
i = 1
# 2、编写循环条件
while i <= 100:# 4、执行要循环打印的代码print('老婆大人,我错了!')# 3、在循环体内部(有缩进),更新计数器的值i += 1
(2)循环过程
初始状态
循环条件
循环体(要重复做的事情)
为下次循环作准备
'''
举个栗子:循环打印输出1-5
Debug工具有两步:
① 打断点
② 启动调试 => step over工具使用Debug调试工具,了解while循环执行流程:
第一步:代码都是从上往下一行一行执行,所以先执行i = 1这一行代码
第二步:执行到while i <= 5这一行,对变量i进行判断,判断是否满足循环条件,如果满足,则继续向下执行,如果不满足,则
while循环执行结束,继续向下执行;由于 1 <= 5,所以执行到循环体的内部,输出i = 1,然后进行i += 1操作,此时i = 2
第三步:执行了i += 1以后,返回到while i <= 5位置,判断i是否小于5,2 <= 5,条件成立,继续往循环内部执行
....
直到i = 6时,条件不成立,则循环结束
'''
# 1、定义一个计数器
i = 1
# 2、编写一个循环条件
while i <= 5:# 编写要循环输出的代码print(i)# 3、在循环体内部(缩进)更新计数器的值i += 1
(3)案例
案例1:计算1-100累加和
'''
求1-100累加的结果,sum = 1 + 2 + 3 + 4 + 5 + ... + 97 + 98 + 99 + 100
sum = 5050
需求分析:
① 使用while循环输出1-100
② 定义一个变量,如sum = 0,在1-100循环的过程中,每循环1次往sum变量中追加一个元素值
i = 1,sum = 0 + 1
i = 2,sum = 0 + 1 + 2
i = 3,sum = 0 + 1 + 2 + 3
...
i = 100,sum = 0 + 1 + 2 + 3 ... + 97 + 98 + 99 + 100
'''
# 第一步:定义一个计数器
i = 1
# 第四步:定义变量,如sum = 0
sum = 0
# 第二步:编写循环条件
while i <= 100:# 第五步:把每次得到的变量i的值累加到变量sum中sum += i# 第三步:在循环体内容更新计数器的值i += 1
# 第六步:当所有循环(100次循环)结束后,输出最终结果sum
print(sum)
'''
什么是死循环呢?记住:一个通过自身控制无法终止的循环结构就被称之为死循环!
死循环产生的两种场景:
① 因为程序编写错误造成的死循环,目前遇到两种情况:
while循环三步走,丢弃了最后一步,更新计数器,则会造成死循环
在while循环中,使用continue关键字之前没有更新计数器的值,也会造成死循环
② 因为业务的需要,人为设计的死循环
基本语法:
while True:需要一直被执行的代码,可以缩进放在此位置
特别说明:死循环本身没有任何意义,如果想让其有意义必须要结合input()输入语句
'''
while True:print('你是风儿我是沙,缠缠绵绵到天涯...')
'''
在Python代码中,循环结构一共有两大关键字:while循环 和 for循环
对于循环次数已知的情况,适合使用while循环(因为while循环有计数器)
对于循环次数未知的情况,如数据容器(字符串、列表、元组、字典、集合统称数据容器)的遍历,推荐使用for循环
所以for循环其实是专门用于实现对数据容器的遍历操作
什么是遍历操作?简单来说就是把数据容器中的数据一个一个查询出来的过程,我们就称之为遍历!基本语法:
for 临时变量 in 数据容器:print(临时变量)
执行原理:
① 首先判断数据容器中有多少个元素,则for循环就要循环多少次
② 每次循环时,系统会自动将遍历得到的字符放入临时变量(临时变量一般起名叫做i)中,打印这个变量就相当于输出字符串中的
每一个字符
'''
str1 = 'mynameisly'
for i in str1:print(i)
'''
问题:for循环也是循环,能不能实现固定循环多少次,比如循环10次
答:默认情况下,for循环只能用于遍历数据容器。但是如果一定想要达到这个效果,可以使用range()方法range(5) 等价于 range(0, 5, 1),从0开始,到5结束(不包含5),每次前进1步
range(1, 11, 2) 生成一个容器,从1开始,每次前进2步,1 3 5 7 9
'''
# 使用for循环 + range()生成从0到4
for i in range(5): # range(0, 5, 1)print(i)
输出
01234
(3)案例
案例1:计算1-100累加和
'''
需求:使用for循环求1-100累加的和
'''
# 1、定义一个变量sum = 0,用于接收1-100累加的结果
sum = 0
# 2、编写一个for循环,从1循环到100
for i in range(1, 101): # 只顾不顾尾sum += i
# 3、当循环结束,累加结束
print(sum)
案例2:计算1-100偶数累加和
'''
观察偶数特点:
① 能被2整除
② 相邻的偶数与偶数之间,差2位,2 4 6 8 10 12 14 ...
'''
# 第一种解法
# sum = 0
# for i in range(1, 101):
# if i % 2 == 0:
# sum += i
# print(sum)# 第二种解法
sum = 0
for i in range(2, 101, 2): # 2 4 6 8sum += i
print(sum)
6、for中的continue与break
(1)break与continue
break和continue是循环中满足一定条件退出循环的两种不同方式
(2)break关键字
break:表示终止整个循环结构
'''
break和continue是循环中满足一定条件退出循环的两种不同方式
记住:
break:满足一定条件,则终止整个循环结构
continue:满足一定条件,则中止本次循环,继而进入下一次循环
'''
# 1、定义一个字符串
str1 = 'mynameisly'
# 2、需求:遇到字符e则终止整个循环结构
for i in str1:# 添加一个判断条件,判断i是否等于字符'e'if i == 'e':print('遇到字符e则终止整个循环结构')breakprint(i)
(3)continue关键字
continue:表示退出当前一次循环继而执行下一次循环代码
'''
break和continue是循环中满足一定条件退出循环的两种不同方式
记住:
break:满足一定条件,则终止整个循环结构
continue:满足一定条件,则中止本次循环,继而进入下一次循环
'''
# 1、定义一个字符串
str1 = 'mynameisly'
# 2、需求:遇到字符e则中止本次循环,继而进入下一次循环
for i in str1:# 添加一个判断条件,判断i是否等于字符'e'if i == 'e':print('遇到字符e则中止本次循环,继而进入下一次循环')continue # 强调:for循环中的continue不需要更新计数器!print(i)
(4)案例
'''
案例:用for循环实现用户登录
① 输入账号和密码
② 判断账号和密码是否正确(username='admin',password='admin888'),必须要同时匹配
③ 登录仅有三次机会,超过3次会报错
④ 如果用户登录失败,则提示用户名错误还是密码错误
⑤ 获取剩余的登录次数
'''
# 第五步:添加一个变量
trycount = 0
# 第一步:编写一个循环,只能循环3次
for i in range(3):# 第六步:手工更新登录次数trycount += 1# 第二步:接收账号与密码username = input('请输入您的账号:')password = input('请输入您的密码:')# 第三步:判断账号是否正确if username == 'admin':# 第四步:在账号正确的基础上,在判断密码是否正确if password == 'admin888':print('恭喜您,登录成功')breakelse:print('很抱歉,您的密码输入有误,请重新输入!')print(f'您还剩余{3-trycount}次登录机会!')else:print('很抱歉,您的账号输入有误,请重新输入!')print(f'您还剩余{3 - trycount}次登录机会!')
7、for循环中的else结构
(1)基本语法
for 临时变量 in 序列:重复执行的代码...
else:循环正常结束之后要执行的代码
'''
在Python中,while循环/for循环都可以结合else语句结构,基本语法:
while 循环条件:pass
else:当循环正常结束后,要执行的代码!for 临时变量 in 数据容器:pass
else:当循环正常结束后,要执行的代码!问题1:什么情况代表正常结束?什么情况又是非正常结束?
答:在整个循环过程中,只要没有执行break关键字,循环都代表正常结束!问题2:当循环正常结束后,else语句中的代码会被执行多少次?
答:只会被执行1次
'''
# 1、定义一个字符串
str1 = 'mynameisly'
# 2、使用for循环对str1进行遍历操作
for i in str1:# 3、添加一个判断条件,如果字符 == 'e',终止整个循环if i == 'e':print('遇到字符e则终止整个循环结构')breakprint(i)
else:print('当循环正常结束后,else语句中的缩进代码会自动被执行1次!')
(2)案例
'''
案例:用for循环实现用户登录
① 输入账号和密码
② 判断账号和密码是否正确(username='admin',password='admin888'),必须要同时匹配
③ 登录仅有三次机会,超过3次会报错
'''
# 第一步:编写一个循环,只能循环3次
for i in range(3): # 0 1 2# 第二步:提示用户输入要登录的账号与密码username = input('请输入您的账号:')password = input('请输入您的密码:')# 第三步:对账号与密码进行判断,判断账号是否等于admin且密码是否等于admin888if username == 'admin' and password == 'admin888':print('恭喜您,登录成功!')breakelse:print('很抱歉,您的账号或密码输入有误,请重新输入!')
else:print('很抱歉,您的3次登录机会已用完,请10分钟以后再试!')
Linux c下文件读写可用creat,open,close,read,write,lseek等函数。对于跨平台的程序还是用C标准库的fopen等。
open
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open …
A - 2UP3DOWN (atcoder.jp)
AC代码:
#include<bits/stdc.h>
#define endl \n
//#define int long long
using namespace std;
int x,y;
void solve() {cin>>x>>y;if(x<y){if(y-x<2) cout<<"Yes"<<endl;else cout<<"…