Python学习记――(5)for循环

匿名 (未验证) 提交于 2019-12-02 22:54:36
for语句
作用:
  1. 用来遍历可迭代对象的数据元素
  2. 可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
  • 字符串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)
练习:
  1. 用for语句打印1~20,打印在一行内
  2. 用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()
练习:
  1. 求100以内在那些数与自身+1的乘积对11求余的结果等于8
  2. 计算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之后的语句,重新开始一次新的循环
说明:
  1. 在for语句中执行continue语句,将会从迭代对象中取下一个元素,绑定变量后再次执行
  2. 在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])
删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!