Python流程控制之循环结构
当出现有规律或者是重复的事情就可以使用循环。
1、循环变量初始化
2、循环条件
3、循环体
4、改变循环变量
while循环
循环变量初始化
while 循环条件:
循环体
改变循环变量
打印1-100
a=1
while a<=100:
print(a)
a+=1
打印能被3整除,但是不能被5整除
a=1
while a<=100:
if a%3==0 and a%5!=0:
print(a)
a+=1
打印1-100的和
a=1
sum=0
while a<=100:
sum=sum+a
a+=1
print(a)
打印2008(包含)到2009(不包含)年有多少天?
a = 2008
while a<2019:
if(a%4==0 and a%100!=0) or a%400==0:
sum=sum+366
print(a)
else:
sum=sum+365
a+=1
print(sum)
for循环
for 变量 in [列表]:
循环体
打印1-100
for a in range(1,101):
print(a)
嵌套循环
1.外循环决定行数,内循环决定列数
2.外循环每执行一次,内循环执行所有次
break、continue、pass
- break:结束所有循环
- continue:结束本次循环
- pass:没有任何意义,只是为了补全语法
练习
1.打印如下结果:
1*5=5
2*10=20
3*15=45
...
10*50=500
j =5
for i in range(1,11):
print(i,"*",j,"=",i*j)
j+=5
i=1
j=5
while i<=10:
print(i,"*",j,"=",i*j)
j+=5
i+=1
2.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
a=10000
for y in range(5):
a=a+0.003*a
y+=1
print(a)
3.计算1900年1月1日到今天(如:2019年08月20日)相距多少天?
'''
分析:
能被4整除且又不能被100整除是闰年(366天)
能被400整除是闰年
1,3,5,7,8,10,12月份是31天
4,6,9,11月份是30天
2月份 平年28天 闰年29天(2019年是平年)
'''
sum=0
day=0
for a in range(1900,2019):
if (a % 4 == 0 and a % 100 != 0) or a % 400 == 0:
sum = sum + 366
else:
sum = sum + 365
for a in range(1,8):
if a in [1,3,5,7,8,10,12]:
sum+=31
elif a in [3,6,9,11]:
sum+=30
elif a==2:
if (a % 4 == 0 and a % 100 != 0) or a % 400 == 0:
sum+=29
else:
sum +=28
print(sum+20)
4.输入一个年份和一个月份,打印这个月的日历(提示:1900.1.1是星期一)
y=int(input("输入年份:"))
m=int(input("输入月份:"))
sum=0
for a in range(1900,y):
if (a % 4 == 0 and a % 100 != 0) or (a % 400 == 0):
sum = sum + 366
else:
sum = sum + 365
for a in range(1,m):
if a in [1,3,5,7,8,10,12]:
sum = sum + 31
elif a in [4, 6, 9, 11]:
sum = sum + 30
elif a==2:
if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0):
sum=sum+29
else:
sum=sum+28
xq=(sum+1)%7
print((sum+1)%7) #求星期
curr_day=1
if m in [1, 3, 5, 7, 8, 10, 12]:
curr_day=31
elif m in [4, 6, 9, 11]:
curr_day= 30
elif m == 2:
if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0):
curr_day=29
else:
curr_day=28
print("\t",y,"年",m,"月")
print("日\t一\t二\t三\t四\t五\t六")
for a in range(1,curr_day+1+xq):
if a<=xq:
print("\t",end="")
else:
print(a-xq,"\t",end="")
if a%7==0: # 换行
print("")
5.打印如下图案:
*
**
***
****
*****
for a in range(1,6):
for b in range(1,a+1):
print("*",end="")
print("")
6.打印如下图案:
*
***
*****
*******
*********
for a in range(1,6):
for b in range(1,2*a):
print("*",end="")
print("")
7.打印如下图案:
#####*
####***
###*****
##*******
#*********
# 行与列的规律,#的规律: b=6-a,*的规律:c=2*a-1
# 方法一
for a in range(1,6):
for b in range(6,a+6):
print("#"*(6-a)+"*"*(2*a-1),end="")
break
print("")
# 方法二
for a in range(1,6):
for b in range(5,a-1,-1):
print("#",end="")
for c in range(1,2*a):
print("*",end="")
print("")
# 方法三
for a in range(1,6):
for b in range(1,7-a):
print("#",end="")
for c in range(1,2*a):
print("*",end="")
print("")
8.(挑战题)打印如下图案:
\ \ \ \ \ *
\ \ \ \ ***
\ \ \ *****
\ \ *******
\ *********
\ \ *******
\ \ \ *****
\ \ \ \ ***
\ \ \ \ \ *
for a in range(1,6):
for b in range(1,6-a):
print(" ",end="")
for c in range(1,2*a):
print("*",end="")
print("")
for x in range(2,6):
for y in range(1,x):
print(" ",end="")
for z in range(1,10-2*y):
print("*",end="")
print("")
9.打印99乘法表
# 正
for a in range(1,10):
for b in range(1,a+1):
print(str(a)+"*"+str(b)+"="+"%2s"%str(a*b),end=" ")
print("")
# 倒
for a in range(9,0,-1):
for b in range(1,a+1):
print(str(a)+"*"+str(b)+"="+"%2s"%str(a*b),end=" ")
print("")
10.定义一个List,任意输入10个数字保存到List,然后按从小到大排序。(冒泡排序)
思路1(从左往右推):先确定最大值,然后再确定第二大的值,然后再确定第三大的值。以此类推。
lis=[]
for a in range(1,11):
number = int(input("请输入一个数字:"))
lis.append(number)
for cs in range(len(lis)):
for a in range(len(lis)-1):
if lis[a]>lis[a+1]:
temp=lis[a]
lis[a]=lis[a+1]
lis[a+1]=temp
print(lis)
Python流程控制之循环结构的更多相关文章
- Python基础-python流程控制之循环结构(五)
循环结构 循环结构可以减少源程序重复书写的代码量,用来描述重复执行某段算法的问题. Python中循环结构分为两类,分别是 while 和 for .. in. 一.while循环 格式1: whil ...
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
- 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用
047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...
- 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项
046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...
随机推荐
- VMware NAT模式ping通外网[CentOS7]
使用一张网卡,NAT模式 在编辑里打开虚拟网络编辑器 dhcp设置的范围 你的虚拟机的IP 就在那个范围里 NAT设置里有填网关 这里我们vmware 的设置就OK了 在去把你的网络适配器改下iP 这 ...
- java 学习第三天小练习
今天做的是一些流程控制题,if...else,for循环等. 1.给定一个成绩,如果成绩大于80,则输出“奖励”.判断完后不管条件成不成立都要输出“继续努力”. package lianXiTi; i ...
- 解决FirewallD is not running问题
centos7 1.查看firewalld状态:systemctl status firewalld,如果是dead状态,即防火墙未开启. 2.开启防火墙systemctl start firewal ...
- Install aws cli
下载 https://s3.amazonaws.com/aws-cli/AWSCLI64PY3.msi 添加环境变量
- odoo12 修行基础篇之 添加字段 (一)
本人刚刚接触odoo12,大概有2个多月的时间,这两天有点时间,就集中写下博客. 本来是打算整理成笔记,想到这段时间的开发经历,着实感觉网上有关odoo的资料太少,学习资料也不多,既然与odoo有缘, ...
- (四十二)golang--管道
假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在mao中,最终显示出来,要求使用goroutime. 分析: (1)使用goroutime完成,效率高,但是会出现并发/ ...
- kali linux 修改更新源和更新命令
1.修改sources.list源文件: vim /etc/apt/sources.list #aliyun 阿里云 deb http://mirrors.aliyun.com/kali kali-r ...
- 【Luogu P1168】【Luogu P1801&UVA 501】中位数&黑匣子(Black Box)——对顶堆相关
Luogu P1168 Luogu P1801 UVA 501(洛谷Remote Judge) 前置知识:堆.优先队列STL的使用 对顶堆 是一种在线维护第\(k\)小的算法. 其实就是开两个堆,一个 ...
- 【集训Day2 哈希表】【NHOI2015】【Luogu P2421】差
LuoguP2421 原题来自NHOI2015 [解题思路] 本题的解题方法有三种,一种为枚举减数,二分查找被减数.第二种为利用数据单调性用尺取法进行查找,第三种为运用哈希表以快速查找数据. [解题反 ...
- 感觉async await 异步编程 并不能提升性能?
我有2个方法 代码相同 都是执行上传文件IO操作 一个同步 一个异步 接着我用POSTMAN 分别用200个线程 去同时测试2个接口 结果很意外 2个接口 同时执行完成的速度 异步更慢 之前经常看别人 ...