for语句
作用:
-
用来遍历可迭代对象的数据元素
-
可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
-
字符串str
------以下以后再讲------
-
列表 list
-
元组 tuple
-
字典 dict
-
集合 set
-
range函数返回的对象等
语法:
for 变量列表 in 可迭代对象: 语句块1 else: 语句块2
示例:
s = 'ABCDE' for ch in s: print('ch-->>',ch) else: print('可迭代对象已经不能再提供数据了!') print('程序结束') #输出结果如下: ch-->> A ch-->> B ch-->> C ch-->> D ch-->> E 可迭代对象已经不能再提供数据了! 程序结束
练习:
1、任意输入一个字符串:
-
计算出您输入的空格的个数,并打印出来
-
计算您输入的‘a’字符的个数,并打印出来(要求用for语句实现)
-
思考:用while语句能否实现上述功能?
myStr = input('输入一串字符串:') a_count = 0 for char in myStr: if char == 'a': a_count += 1 else: print('空格的数量是:',myStr.count(' ')) print('a的数量是:',a_count)
myStr = input('输入一串字符串:') a_count = 0 i=0 while i< len(myStr) char =myStr[i] if char == 'a': a_count += 1 i+=1 else: print('空格的数量是:',myStr.count(' ')) print('a的数量是:',a_count)
range函数
格式:见>>>help(range)
函数
range(stop):从零开始,每次生成一个整数后加1操作,直到stop为止(不包含)
range(star,stop[,step]) :从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以是负整数)
作用:用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
示例
range(4) #生成 0,1,2,3 range(3,6) #生成 3,4,5 range(1,10,2) #生成 1,3,5,7,9
for i in range(5): print(i)
练习:
-
用for语句打印1~20,打印在一行内
-
用for语句打印1~20,每5个打印在一行内
for i in range(1, 21): print(i, end=' ') else: print() for i in range(1, 21): print(i, end=' ') if i % 5 == 0: print()
练习:
-
求100以内在那些数与自身+1的乘积对11求余的结果等于8
-
计算1+3+5+7+....+97+99的和分别用for循环和while语句来实现
for i in range(100): if (i * (i + 1)) % 11 == 8: print( i )
#for sum=0 for i in range(1,100,2): sum+=i else: print(sum) #while sum=0 i=1 while i< 100: sum+=i i+=2 else: print(sum)
for语句的注意事项:
请问下面程序的打印结果是什么:
i=6 for x in range(1, i): print('x=',x,'i=',i) i -= 1 #<<<---注意此处 结果: x= 1 i= 6 x= 2 i= 5 x= 3 i= 4 x= 4 i= 3 x= 5 i= 2
range函数为一次性函数,执行过一次之后,返回结果后,不再执行
for语句的嵌套
示例:
for x in 'ABC': for y in '123': print(x + y)
练习:
输入一个整数n,打印一个对应的正方形:
如:请输入5
打印:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
输入一个整数n,打印一个对应的正方形:
如:请输入5
打印:
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
n = int(input('请输入一个数字:')) for i in range(1,n+1): for j in range(1,n+1): print(j, end=' ') print()
n = int(input('请输入一个数字:')) for i in range(n): for j in range(i + 1,i + n + 1): print('%02d' % j, end=' ') print()
continue语句
用于循环语句(while,for语句)中,不再执行本次循环continue之后的语句,重新开始一次新的循环
说明:
-
在for语句中执行continue语句,将会从迭代对象中取下一个元素,绑定变量后再次执行
-
在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件
练习:
输入一个起始数用start绑定,输入一个结束数用stop绑定,打印start到stop(不包含stop)内的所有奇数(用什么方法都可以)
start=int(input('start:')) stop=int(input('stop:')) for i in range(start,stop): if i%2==1: print(i) for i in range(start,stop): if i%2==0: continue print(i)
练习:
求1~100之间所有不能被5/7/11整除的数以及这些数的和
sum=0 i=1 while i<100: if (i%5==0) or (i%7==0) or (i%11==0): i+=1 continue print(i) sum+=i i+=1 print(sum)
列表的定义:
-
列表是一种容器
-
列表是序列的一种
-
列表是可以被改变的序列
-
列表中由一些列特定元素组成的,元素与元素之间可以没有任何关联关系,但他们之间有先后顺序关系
创建空列表的字面值
L=[] #L变量绑定空列表
创建非空列表的字面值
L=[1,2,3,4] L=['Beijing','Shanghai','Shenzhen'] L=[1,'Two',3.14,'四']
列表的构造函数 list
list() #生成一个空的列表 list(iteable) #用可迭代对象创建一个列表
方法
|
意义
|
L.index(v [, begin[, end]])
|
返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误
|
L.insert(index, obj)
|
将某个元素插放到列表中指定的位置
|
L.count(x)
|
返回列表中元素的个数
|
L.remove(x)
|
从列表中删除第一次出现在列表中的值
|
L.copy()
|
复制此列表(只复制一层,不会复制深层对象)
|
L.append(x)
|
向列表中追加单个元素
|
L.extend(lst)
|
向列表追加另一个列表
|
L.clear()
|
清空列表,等同于 L[:] = []
|
L.sort(reverse=False)
|
将列表中的元素进行排序,默认顺序按值的小到大的顺序排列
|
L.reverse()
|
列表的反转,用来改变原列表的先后顺序
|
L.pop([index])
|
删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系
|