for 语句:
作用:
用来遍历可迭代对象的数据元素 遍历:如有六节车厢找一个人需要每节车厢找一边
可迭代对象是指能依次获取数据元素的对象
迭代对象包括:
字符串:str
列表 list
元组 tuple
for语法:
for 变量列表 in可迭代对象:
语句块1
else:
语块2
示例:
s = "ABCD"
for ch in s:
print ("ch---->>",ch)
结果:
ch---->> A
ch---->> B
ch---->> C
ch---->> D
练习:
1. 任意输入一段字符串
a) 计算出输入字符的“a”个数,并打印出
b) 计算出空格的个数,打印个数
思考:
用while语句能否实现
a) 答案:
a = input ("输入字符串:")
c = 0 #用于求和的
for b in a : #循环输入字符串中a的每一个元素
if b =="a": #如果b中有“a”则执行下边语句
c += 1
print (b) #打印出字符串a
print (c) #输出输入字符串中“a”的个数
b)答案:
a = input ("输入字符串:")
c = 0
for b in a :
if b == " ":
c += 1
print ("空格个数",c)
for语句说明:
else 子句部分可以忽略
当在循环内部用break终止循环时,else子句部分不会执行
示例:
输入一段字符串,判断这个字符串内是否有“h”这个字符,并打印出来
答案:
s = input ("输入字符串:")
for ch in s :
if ch == "h":
print (s,"中含有字符“h”")
break #结束循环
else:
print (s,"中不含有“h”")
range 函数
range(stop) 用来生成0~stop区间内的整数,直到stop为止(不包括stop)
range (start,stop,step) step步数与切片差不多
用来生成start~stop区间内的整数,直到stop为止(不包含stop)
**作用:**
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
说明:
range返回的对象可以由for语句来进行依次迭代访问取出其中的整数
示意:
range (4) #生成0,1,2,3
range (3,6) #生成 3,4,5
range (1,10,2) #生成 1,3,5,7,9
range (5,0,-2) #生成5,3,1
range (4,0) # 空
练习:
用for1-20整数,打印在一行捏:
答案:
for a in range(1,21):
print (a,end = "")
else:
print()
练习:计算1+3+5+7+。。。。。。。+99的和
while语句答案:
i = 1
sum =0
while i <= 99: #当结束循环时输出print(c)的值
if i % 2 != 0:
sum +=i
i += 1
print (sum,end = "")
用for语句做
sum = 0
for a in range (1,100):
if a % 2 != 0: #for循环从1到99依次执行一次if语句
sum =sum + a
print (sum)
for 语句变量可能不被创建
问题:
for x in range (4,0) #range(4,0)为空所以不被创建
print(x)
print (‘x绑定’,x)
for 注意问题:
for 语句的嵌套:
for x in “abc“
for y in “123“
print (x+y)
结果:
a1
a2
a3
b1
b2
b3
c1
c2
c3
for x iabc": fx in “abc“:
for y in "123": for y in“123”:
print (x) print (y)
结果:
a 先循环”abc“中的a 1
a 然后a再与“123“一起循环 2
a 因为123有三个数所以a循 3
b 环三次 1
b 2
b 3
c 1
c 2
c 3
练习:
1.求10
0以内有哪些数与自身+1的乘积再对11求余等于8?
2.输入1个数,打印图形
输入5:
12345
12354
12345
12345
12345
3.
输入一个数打印图形:
输入5:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
2.答案:
i = int(input("输入一个数"))
for a in range(1,i+1) : #输出 a =1 2 3 4 5
for y in range (1,i+1):
print (y,end = "")
print()
答案:3
i = int(input("输入一个数"))
for a in range(1,i+1) : #输出a=1 2 3 4 5
for y in range (a,i+a): #先循环a=1 则语句这(a,i+a)为(1,i+1)
print (y,end = "")
print()
4.用程序生成如下
字符串:
a) “ABCDEFG…..XYZ“
b) “AaBbCc。。。。Zz“
可以用 ord 和chr函数
答案a:
for x in range (65,92):
print (chr(x),end= "")
答案b:
s2 = " "
for x in range (65,92):
s2 += chr (x) #第一次循环输出"A"
s2 += chr (x+32)
print(s2)
**continue语句**
**作用:
用于循环语句(while,for中)不再执行本次循环continue之后的语句,重新开始一次新的循环**
语法:
在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件
在for语句中执行continue语句,将会从可迭代对象中选取下一个元素,绑定变量后在再次循环
示例:
for x in range (5):
if x ==2:
continue #当满足if x==2,结束这次循环不再进行print(x)输出而是从新开始从for语句中进行第三次循环
print(x)
结果:
0
1
3
4
while语句中运行
用contine示例:
x = 0
while x < 5:
if x == 2 :
x += 1 然后结束if语句输出结果3然后开始执行下一次循环x+ = 1,这时x等于4开始再次进行while的循环
continue
print(x)
x += 1
结果:
0
1
3
4
练习:1.求一到一
百之间所有不能被2,3,5,7整除数的和
答案:
sum = 0
for x in range (1,101):
if x % 2 == 0 or x % 3 ==0 or x % 5 ==0 or x % 7 == 0:
continue #满if条件后跳过满足条件的这次循环再进行下一次循环
sum += x
print(sum) #输出不满足条件数的总和
结果 :1044
另一种情况:
sum = 0
for x in range (1,101):
if x % 2 == 0 or x % 3 ==0 or x % 5 ==0 or x % 7 == 0:
continue #满if条件后跳过满足条件的这次循环再进行下一次循环
sum += x
print(sum) #当print在if语句下的话执行的结果是满足if条件后执行一次就求和然后跳过不满足if 条件的这次循环进行下次循环当满足if后再次进行一下求和
结果:
1
12
25
42
61
84
113
144
181
222
265
312
365
424
485
552
623
696
775
858
947
1044