当出现有规律或者是重复的事情就可以使用循环。

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流程控制之循环结构的更多相关文章

  1. Python基础-python流程控制之循环结构(五)

    循环结构 循环结构可以减少源程序重复书写的代码量,用来描述重复执行某段算法的问题. Python中循环结构分为两类,分别是 while 和 for .. in. 一.while循环 格式1: whil ...

  2. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  3. 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序

    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...

  4. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

  5. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

  6. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  7. 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...

  8. 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用

    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...

  9. 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项

    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...

随机推荐

  1. Ubuntu字符界面与图形界面的切换

    1.按ALT+CTRL+F1切换到字符界面 2.按ALT+CTRL+F7切换到图形界面

  2. python三种格式化输出

    name = '张三'age = 22job = Engineersalary = 99999999 info1 = ''' ---------- info1 of %s ---------- nam ...

  3. python接口自动化--Excel

    1.操作步骤: (1)安装python官方Excel库-->xlrd (2)获取Excel文件位置并读取 (3)读取sheet (4)读取指定rows和cols内容 2.示例代码 # -*- c ...

  4. 20191107-3 beta week 2/2 Scrum立会报告+燃尽图 02

    此作业要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/9955] 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 ...

  5. 12、pytest -- 缓存:记录执行的状态

    目录 1. cacheprovider插件 1.1. --lf, --last-failed:只执行上一轮失败的用例 1.2. --ff, --failed-first:先执行上一轮失败的用例,再执行 ...

  6. VS Code实现markdown画流程图

    安装最新的vscode编辑器,原生支持markdown语法.不会markdow的人可以去好好学下,写文档神器!!! 1.安装Markdown Preview Enhanced插件 2.本地新建test ...

  7. 程序员的进阶课-架构师之路(13)-B-树

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  8. PAT甲级专题|链表

    PAT链表专题 关于PAT甲级的链表问题,主要内容 就是"建立链表" 所以第一步学会模拟链表,pat又不卡时间,这里用vector + 结构体,更简洁 模拟链表的普遍代码 cons ...

  9. 8. SOFAJRaft源码分析— 如何实现日志复制的pipeline机制?

    前言 前几天和腾讯的大佬一起吃饭聊天,说起我对SOFAJRaft的理解,我自然以为我是很懂了的,但是大佬问起了我那SOFAJRaft集群之间的日志是怎么复制的? 我当时哑口无言,说不出是怎么实现的,所 ...

  10. idea 使用下Java JDK安装

    下载idea 百度云: 链接:https://pan.baidu.com/s/1pmDTH-W1_BhSYJAlcAvljQ          提取码:sgmk 下载Java1.8(jdk-8u181 ...