打卡day03 python基础—for循环

for 循环所做的事情概括成一句话就是:于.....其中的每一个元素,做....事情。

for是关键词,后面紧跟着的是一个可以容纳“每一个元素”的变量名称,起名时不要和关键词重名。

在关键词 in 后面所对应的一定是具有“可迭代的” (iterable)或者说是像列表那样的集合形态的对象,即可以连续地提供其中每一个元素的对象。

# for 变量 in 可迭代对象:所谓可迭代对象,就是指那些元素可以被单独提取出来的对象,如 目前最熟悉的字符串,
# 像“FishC”就是由“F”“i”“s”“h”“C”五个字符元素构 成的。
# 那么,for循环语句每执行一次就会从该字符串(可迭代对象)中拿出其中一个字符,然后存放到变量中。
#     循环体
for each in "FishC":
    print(each)

打印结果:

F
i
s
h
C

# 100是一个整数,它不是“可迭代对象”,所以Python会直接报错
sub=0
for i in 100:
    sub += i
print(sub)

 打印结果:

Traceback (most recent call last):
  File "C:/Users/issuser/PycharmProjects/untitled/test001/循环.py", line 27, in <module>
    for i in 100:
TypeError: 'int' object is not iterable

# 生成的数字序列中,只包含开始数值,并不包含结束数值
a=list(range(10))
print(a)

b=list(range(3,8))
print(b)

c = list(range(2,10,3))
print(c)

# 这个步长除了可以是正整数,还可以是负整数
d=list(range(0,-10,-3))
print(d)

打印结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7]
[2, 5, 8]

[0, -3, -6, -9]

#求和
sum=0
for i in range (100):
    sum+=i
    i+=1
print(sum)

打印结果:

4950

# 下面代码将打印2018年以后出现的第一个闰年(注: 当年份可以被4整除且不能被100整数,或者可以被400整除时,该年被 定为闰年):
for year in range(2018,2100):
    if (year%4==0) and (year%100!=0) or (year%400==0):
        break
print('2008年以后第一个出现的是',year)

打印结果:

2008年以后第一个出现的是 2020

"""
1 + 1 = 2
2 + 1 =3
.
.
10 + 1 = 11
打印这样的结果,需要一个内置函数—range,只需要在range函数后面的括号中填上数字,就可以得到一个具有连续整数的序列
"""
for num  in range(1,11):
    print(str(num) +  ' + 1 =' ,num + 1)

"""
这段代码表达的是:将1~10范围内的每一个数字依次装入变量num中,每次展示一个 num + 1的结果
变量num被循环赋值10次,等同于
num = 1
print(str(num) +  ' + 1 =' ,num + 1)
num = 2
print(str(num) +  ' + 1 =' ,num + 1)
.
.
num = 10
print(str(num) +  ' + 1 =' ,num + 1)
"""

打印结果:

1 + 1 = 2
2 + 1 = 3
3 + 1 = 4
4 + 1 = 5
5 + 1 = 6
6 + 1 = 7
7 + 1 = 8
8 + 1 = 9
9 + 1 = 10
10 + 1 = 11

# for 循环进行遍历时,尽量不要对遍历的对象进行修改,尤其是删除
a = [1,2,3,4,5,6,7]
for i in a:
    if i==2 or i==3:
        a.remove(i)
        print(i)
print(a)
print(type(i))
"""比如上面的输出的结果是[1,3,4,5,6,7],我们想的是删除2和3,但是它只删除了2,理论上它已经遍历了第二个元素所以3就不会被删除了"""

打印结果:

2
[1, 3, 4, 5, 6, 7]
<class 'int'>

a = [1,2,3,4,5,6,7]
b=[]
for i in a:
    if i==3 or i==4:
        b.append(i)
        print(i)
        print(b)

# 另一种写法:
a = [1,2,3,4,5,6,7]
b=[]
for i in a:
    if i==3 or i==4:
        b.append(i)
        print(i)
print(b)

打印结果:

3           #i=3
[3]         #b=[3]
4           #i=4
[3, 4]    #b=[3,4]

 另一种打印结果:

3            #i=3
4            #i=4
[3, 4]     #b=[3,4]

a = [1,2,3,4,5,6,7]
b=[]
for i in a:
    if i==3 or i==4:
        b.append(i)
        print(i)
        print(b)

for i in b:
    a.remove(i)
print(a)

打印结果:

3    #i=3
[3]   #b=[3]
4    #i=4
[3, 4]    #b=[3,4]
[1, 2, 5, 6, 7]    #a=[1,2,5,6,7]

"""因为a和b指向的是同一个地址,所以对列表增加元素时,b也会增加
函数和类同样如此,函数和类的内容扔进内存里,让函数名或类名指向那片地址"""
a = [1]
b=a
a.append(2)
print(b)
print(a)

打印结果:

[1, 2]
[1, 2]

"""歌曲列表中有三首歌'Holy Diver','Thunderstruck','Rebel Rebel',当播放到每首时,分别显示对应的歌手名字'Dio,AC/DC,David Bowie'"""
song_list = ['Holy Diver','Thunderstruck','Rebel Rebel']
for song in (song_list):
    if song =='Holy Diver':
        print(song,' - Dio')
    elif song =='Thunderstruck':
        print(song,' - AC/DC')
    elif song  == 'Rebel Rebel':
        print(song,'- David Bowie')
"""将song_list列表中的每一个元素依次取出来,并分别与三个条件作比较,如果成立则输出相应的内容"""

打印结果:

Holy Diver  - Dio
Thunderstruck  - AC/DC
Rebel Rebel - David Bowie

# 嵌套循环(Nested Loop)
for i in range(1,10):
    for j in range(1,10):
        print('{} X {} = {}' .format(i,j,i * j))
        """最外层的循环依次将数值1~9存储到变量i中,变量i每取一次值,内层循环就要一次将1~9中存储在变量j中
        最后展示当前i、j与i*j的结果
        """

 打印结果;

1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
1 X 6 = 6
1 X 7 = 7
1 X 8 = 8
1 X 9 = 9
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
4 X 1 = 4
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16
4 X 5 = 20
4 X 6 = 24
4 X 7 = 28
4 X 8 = 32
4 X 9 = 36
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
6 X 1 = 6
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54
7 X 1 = 7
7 X 2 = 14
7 X 3 = 21
7 X 4 = 28
7 X 5 = 35
7 X 6 = 42
7 X 7 = 49
7 X 8 = 56
7 X 9 = 63
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
9 X 1 = 9
9 X 2 = 18
9 X 3 = 27
9 X 4 = 36
9 X 5 = 45
9 X 6 = 54
9 X 7 = 63
9 X 8 = 72
9 X 9 = 81

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值