python循环五要素,Python 1.5 for 循环综合

入门篇:

程序设计的3种基本结构:

顺序结构 —— 是指程序按先后顺序执行,只有执行了前一步,才能执行后一步。例如火车在轨道上行驶,只有过了上一站点才能到达下一站点。

选择结构 —— 又称分支结构,是指程序可以分几条路径执行。例如在一个十字路口处,可以选择向东、南、西、北几个方向行走。

循环结构 —— 又称重复结构,是指程序重复执行某一段代码。例如万米跑,围着足球场跑道不停地跑,直到满足条件时(25圈)才停下来。

be16a1bfa0f1

循环语句的概念:

使程序根据一定的条件重复执行某一部分程序代码,直到满足终止循环条件为止。

对于循环结构的基本了解:

什么是循环结构 ?其是一种重复执行的程序结构。实际应用中,常会碰到一些需要重复执行的步骤。

(1)手机输入密码,重复尝试直到密码正确或者超出允许次数。

(2)计算全班同学的平均身高,累加所有同学的身高,除以人数 。

(3)高速路的收费窗口。

循环语句的种类:

1)for语句:确定次数循环 2)while语句:条件循环

for循环的理解 :

1)提取三要素:迭代变量 序列 循环体

2)给出序列中元素

3)每次从序列中取一个元素,将其传递给迭代变量,然后执行一次循环体.

4)通常情况下,序列中有几个元素,循环体就执行几次!

be16a1bfa0f1

实例开展:

1.读入正整数n,检查输入,合理则计算1+2+3+…+n

分析:初始化;和值如何累加?

代码:

n=int(input('请输入正整数n: '))

if n<1:

print('你输入的不是正整数,系统退出')

else:

he=0

for i in range(1,n+1):

he+=i

print('1到',n,'的和值是',he)

效果运行:

>>>

====== RESTART: C:\Users\asus\Desktop\sum1ToN.py ======

请输入正整数n: 15

1到 15 的和值是 120

>>>

2.读入正整数n,打印出1~n之间所有同时满足如下条件的整数:(1)能被3、7整除 (2)不能被5整除 (3)除8的余数是2。

代码:

n = int(input('请输入一个正整数 '))

print('1~',n,'之间满足:能被3、7整除;不能被5整数;除8的余数是2的所有整数如下:')

for i in range(1,n+1):

if i%3==0 and i%7==0 and i%5!=0 and i%8==2:

print(i)

效果:

>>>

== RESTART: C:\Users\asus\Desktop\p_findDigits3578.py ==

请输入一个正整数 1000

1~ 1000 之间满足:能被3、7整除;不能被5整数;除8的余数是2的所有整数如下:

42

378

546

714

882

>>>

综合篇:

知识点1:变化中的列表案例分析

a = ['hi','hello','moring',100,200,300]

for i in a:

print(i)

a.pop()

效果:

>>>

==================== RESTART: C:/Users/asus/Desktop/测试.py ====================

hi

hello

moring

>>>

1.为什么用了a.pop()之后,print只打印出:

hi

hello

moring

后面的100,200,300出哪了?

原因很简单:pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

当i = 0的时候;

打印出hi

与此同时a.pop() 删掉默认最后的一个元素300

当i = 1的时候;

打印出hello

与此同时a.pop() 删掉默认最后的一个元素200(因为上面已经pop掉了300)

以此类推.....

知识点回顾总结:

添加元素:

list.append( ) 在list 末尾增加单个元素。

list.extend( )在list 末尾添加所有元素。

删除元素:

list.pop() 弹出最后一个元素。

list.remove( ) 移除首个元素。

元素排序:

list.sort() 将所有的元素进行原地排序

list.reverse() 将所有的元素进行原地反向排序(逆序)。

知识点2:死循环案例分析

import time,random

a=[0]

for i in a: #让a只执行1此

print(a)

t=random.randint(0,100) #产生1个0到100的随机数,含0和100

a.append(t) #把产生的随机数添加到列表a里面

time.sleep(2) #程序停顿2秒

else:

print('死循环终于结束了')

效果:

>>>

==================== RESTART: C:\Users\asus\Desktop\测试.py ====================

[0]

[0, 32]

[0, 32, 72]

[0, 32, 72, 10]

[0, 32, 72, 10, 5]

[0, 32, 72, 10, 5, 9]

[0, 32, 72, 10, 5, 9, 56]

[0, 32, 72, 10, 5, 9, 56, 95]

[0, 32, 72, 10, 5, 9, 56, 95, 40]

Traceback (most recent call last):

File "C:\Users\asus\Desktop\测试.py", line 7, in

time.sleep(2) #程序停顿2秒

KeyboardInterrupt

>>>

我们发现,如果我们不中止它,程序将会没完没了得一直运行下去。

在程序运行时,遇到死循环该如何中止?

提示:按住ctrl+c 键即可解决。

知识点总结:

import 在python中用于导入相应的函数模块。

该案例用import导入了时间函数模块(time)和随机数函数模块(random),可以用tab键补全查看更多方法详情。

粟子:

import time

time.sleep(5) #停顿5S

.sleep()方法让程序停顿停顿多少秒。

粟子:

import random

random.randint(100,200)

randint 叫随机整数。

.randint(100,200) 的意思是在100和200区间内任意产生1个随机整数数,包含100和200自己本身。

课外小知识:

python的idle 是可以调字体和字体大小的哦,如果你觉得你的程序的字体太小了,可以点击菜单栏的Options--Configure IDLE-- Size/Font-Face

python里面的shell有一个 help()方法,可以查看任意函数的详情。

例如:help(random)

知识点3:打印星星数列,2*4的数列

代码:

for i in range(1,3): #打印2行

for j in range(1,5): #打印4列

print('*',end='')

print()

效果:

>>>

================= RESTART: C:/Users/asus/Desktop/11111111.py =================

****

****

>>>

知识点4:打印乘法表:

代码:

for i in range(1,5):

for j in range(1,i+1):

print(i,'*',j,'=',i*j,end=' \t')

print()

效果:

>>>

================= RESTART: C:/Users/asus/Desktop/11111111.py =================

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

>>>

知识点总结:

1.嵌套循环:外面的循环通常称之为外循环或者大循环,内部的循环称之为内循环或者小循环。

2.循环嵌套的执行过程是:一次外循环对应着完整的一轮内循环。

3.设计和分析嵌套循环时的注意事项:

1)内外循环的迭代变量不要同名,否则容易引起混淆或错。

分析代码时要详细地框出各级对应的循环体。

3)循环层次较深时,我们称之为1级循环、2级循环。

be16a1bfa0f1

知识点5:读入正整数n,生成并输出一个含有n个0~100(含0和100)之间的随机数的列表,求其平均值(保留两位小数)。

代码:

import random #导入random模块

n=int(input('请输入要想产生的随机数的个数:'))

temp=[] #生成一个空列表

for i in range(n): #循环进行n次

temp.append(random.randint(0,100)) #每次挑取一个随机数放进列表temp里面

#到这里temp列表已经生成完了,temp列表里面有n个随机数,并且都在0~100之间。

print('这些随机数是')

num=0 #用于统计当前行打印了几个数字,初始值为0

for i in temp:

print(i,end="\t")

num += 1 #每打印一个数字,Num+1

if num % 10==0: #每打印10的倍数个数字就来个换行

print()

if num % 10 != 0: #进行精确换行

print()

print('这些随机数的平均数是',round(sum(temp)/len(temp),2))

效果展示:

>>>

========= RESTART: C:\Users\asus\Desktop\python\for2 p_randint.py =========

请输入要想产生的随机数的个数:25

这些随机数是

65 27 27 24 89 2 14 62 20 48

90 44 26 19 19 3 61 37 57 74

63 6 3 39 16

这些随机数的平均数是 37.4

>>>

python中end=" " 的用法:

print默认是打印一行,结尾加换行。

end=' '意思是末尾不换行,加空格。

>>> print('a')

a

>>> print('a',end=' ')

a >>> print('a',end='1234')

a1234>>>

python 常见转义字符:

\t 横向制表符(主要是占位对齐,作用是对齐表格的各列。)

\ 续行符 (在行尾时使用)

\n 换行符

知识点6:打印金字塔任务:读入正整数n,打印n行金字塔。

代码(方法一)

n=int(input('请输入金字塔行数 '))

for i in range(1,n+1):

for j in range(n-i):

print(' ',end='')

for j in range(2*i-1):

print('*',end='')

print()

代码(方法二)

n=int(input('请输入金字塔行数 '))

for i in range(1,n+1):

print(' '*(n+1-i),end='')

print('*'*(2*i-1))

共同效果:

>>>

================= RESTART: C:/Users/asus/Desktop/11111111.py =================

请输入金字塔行数 12

*

***

*****

*******

*********

***********

*************

***************

*****************

*******************

*********************

***********************

>>>

知识点7:读入整数n,倒着输出金字塔。

代码:(方法1)

n=int(input('请输入金字塔行数 '))

for i in range(1,n+1):

for j in range(i-1):

print(' ',end='')

for k in range(2*(n-i)+1):

print('*',end='')

print()

代码(方法2)

n=int(input('请输入金字塔行数 '))

for i in range(n,0,-1):

print(' '*(n-i)+'*'*(2*i-1))

代码(方法3)

n=int(input('请输入金字塔行数 '))

for i in range(1,n+1):

print(' '*(i-1)+'*'*(2*(n-i)+1))

代码(方法4)

n=int(input('请输入金字塔行数 '))

for i in range(n,0,-1):

for j in range(n-i):

print(' ',end='')

for k in range(2*i-1):

print('*',end='')

print()

共同效果:

>>>

================= RESTART: C:/Users/asus/Desktop/11111111.py =================

请输入金字塔行数 5

*********

*******

*****

***

*

>>>

知识点8:读入正整数n,打印n行数字金字塔。

代码:

n=int(input('请输入正整数n: '))

#i用来控制行号,当i为3时表达打印第3行,当i为4时表示打印第4行

for i in range(1,n+1):

#for j这句话用来打印第i行的前面n-1个空格

for j in range(1,n-i+1):

print(' ',end='')

#for k这句话用来打印升序的数字,从1到i-1

for k in range(1,i):

print(k,end='')

#for m这句话用来打印降序的数字,从i到1

for m in range(i,0,-1):

print(m,end='')

#这句话实现第i行的最后换行

print()

效果:

>>>

================= RESTART: C:/Users/asus/Desktop/11111111.py =================

请输入正整数n: 5

1

121

12321

1234321

123454321

>>>

知识点9:读入正整数n,打印n行菱形数字金字塔。

代码:

'''

读入正整数n,打印n行,每行显示行号和一串星号,第k行k个星号,

注意第一个星号的对齐。

这道题目在做题之前要分析数字金字塔的结构:

如果n=5则打印5行,即打印n行

对于其中任意第i行,可以观察到:

首先打印n-i个空格,然后打印升序然后打印降序,最后换行

'''

n=int(input('请输入正整数n: '))

#i用来控制行号,当i为3时表达打印第3行,当i为4时表示打印第4行

for i in range(1,n+1):

#for j这句话用来打印第i行的前面n-i个空格

for j in range(1,n-i+1):

print(" ",end='')

#for k这句话用来打印升序的数字,从1到i-1

for k in range(1,i):

print(k,end='')

#for m这句话用来打印降序的数字,用i到1

for m in range(i,0,-1):

print(m,end='')

#这句话实现第i行的最后的换行

print()

#这里开始打印倒着的部分

for i in range(n-1,0,-1):

#for j这句话用来打印第i行的前面n-i个空格

for j in range(1,n-i+1):

print(" ",end='')

#for k这句话用来打印升序的数字,从1到i-1

for k in range(1,i):

print(k,end='')

#for m这句话用来打印降序的数字,用i到1

for m in range(i,0,-1):

print(m,end='')

#这句话实现第i行的最后的换行

print()

效果:

>>>

============ RESTART: C:\Users\asus\Desktop\h_numPyramidUandD.py ============

请输入正整数n: 5

1

121

12321

1234321

123454321

1234321

12321

121

1

>>>

知识点10:读入正整数n和m,生成m个1到1000之间的随机整数,显示这些随机数中能被n整除的数字。

代码:

'''

读入正整数n和m,生成m个1到1000之间的随机整数,

显示这些随机数中能被n整除的数字

'''

import random

n=int(input('请输入除数(int): '))

m=int(input('请输入随机数的个数(int): '))

#生成m个随机数放入列表t中

t=[]

for i in range(m):

t.append(random.randint(1,1000))

print('这些随机数是',t)

ok=[]

#删除列表t中不能被n整除的随机数

for i in t:

if i%n==0:

ok.append(i)

if len(ok)==0:

print('没找到合适的随机数')

else:

print('能整除的数有',ok)

效果:

>>>

============= RESTART: C:\Users\asus\Desktop\h_findAllRandom.py =============

请输入除数(int): 100

请输入随机数的个数(int): 20

这些随机数是 [151, 580, 130, 439, 177, 575, 647, 252, 755, 327, 215, 672, 313, 59, 256, 743, 747, 549, 351, 803]

没找到合适的随机数

>>>

知识点11:打印矩形9-9乘法表。

代码:

print(' '*16+'Multiplication Table')

headline=' '*3;

for i in range(1,10):

headline+='%5d'%i

print(headline)

print('-'*50)

for i in range(1,10): #控制行

currLine=str(i)+'| '

for j in range(1, 10): #控制列

currLine+='%5d'%(i*j)

print(currLine)

运行效果:

>>>

=========== RESTART: C:\Users\asus\Desktop\h_printMultiTableV2.py ===========

Multiplication Table

1 2 3 4 5 6 7 8 9

--------------------------------------------------

1| 1 2 3 4 5 6 7 8 9

2| 2 4 6 8 10 12 14 16 18

3| 3 6 9 12 15 18 21 24 27

4| 4 8 12 16 20 24 28 32 36

5| 5 10 15 20 25 30 35 40 45

6| 6 12 18 24 30 36 42 48 54

7| 7 14 21 28 35 42 49 56 63

8| 8 16 24 32 40 48 56 64 72

9| 9 18 27 36 45 54 63 72 81

>>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值