Python学习记——(5)for循环和List

时间:2021-08-09 20:29:06
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])
删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系