五。循环结构
1.内置函数 range函数
-
range的三种创建方式
-
只有一个参数(小括号中只给了一个数) r=range(10)
print(r)
print(list(r))
-
给了两个参数(小括号中给了两个数) r=range(1,10)
print(r)
-
给了3个参数(小括号中给了3个数) r=range(1,10,2)
print(list(r))
'''判断指定的的整数 在序列中是否存在 in ,not in'''
print(10 in r)
print(9 in r)
2.while 循环
n=int(input())
a=0
sum=0
while(a<n):
a=a+1
sum=sum+a
print(sum)
n=int(input())
a=0
sum=0
while(a<n):
a=a+2
sum=sum+a
print(sum)
n=int(input())
a=0
sum=0
while(a<n):
a = a + 1
if not bool(a%2):
sum=sum+a
print(sum)
3.for-in循环
pythonfor item in 'Python' :
print(item)
'''P
y
t
h
o
n
'''
for i in range(1,10,2):
print(i)
'''1
3
5
7
9
'''
如果在循环体中不需要使用自定义变量,可将自定义变量写为”_“
for _ in range(5):
print('人生苦短,我用python')
'''人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
人生苦短,我用python
'''
print('计算一到一百的偶数和')
sum=0
for i in range(1,101):
if i%2==0:
sum=sum+i
print(sum)
输出100到999之间的水仙花数
for i in range(100,1000):
b=i//100
s=i//10%10
g=i%10
if i==b**3+s**3+g**3:
print('水仙花数为'+str(i)+'')
'''153 为水仙花数
370 为水仙花数
371 为水仙花数
407 为水仙花数'''
4.流程控制语句break
从键盘录入密码,最多录入三次,如果正确,就退出循环(for in)
for item in range(3):
pwd=input('请输入密码')
if pwd=='1234':
printf('密码正确')
break
else:
print('密码不正确')
从键盘录入密码,最多录入三次,如果正确,就退出循环(while)
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='1234':
print('密码正确')
break
else:
print('密码不正确')
5.流程控制语句continue
要求输出1到n之间所有5的倍数
n=int(input())
for item in range(1,n+1):
if item%5==0:
print(item)
else:
continue
n=int(input())
for item in range(1,n+1):
if item%5!=0:
continue
else:
print(item)
6.else语句
for item in range(3):
pwd=input('请输入密码')
if pwd=='8888':
print('密码正确')
else:
print('密码错误')
else:
print('对不起,三次输入密码错误')
a=0
while a<3 :
pwd=input('请输入密码')
if pwd=='8888':
print('密码正确')
else:
print('密码错误')
a=a+1
else:
print('对不起,三次输入密码错误')
7.嵌套循环
for i in range(1,10):
for j in range(1,i+1):
print(''+str(i)+'*'+str(j)+'='+str(i*j)+'',end='\t')
print()
'''
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 '''
for i in range(6):
for j in range(0,10-i):
print(end=" ")
for j in range(10-i,10):
print('*',end=' ')
print('')
'''
*
* *
* * *
* * * *
* * * * * '''
8.二重循环中的break和continue
for i in range(5):
for j in range(1,11):
if j%2==0:
break
print(j,end='')
print( )
'''
1
1
1
1
1
'''
for i in range(5):
for j in range(1,11):
if j%2==0:
continue
print(j,end='')
print( )
'''
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
'''
总结
六,列表
1.列表start
a=10
lst=['hello','56','hcj']
print(id(lst))
print(type(lst))
print(lst)
2.列表的创建
lst=['hello','world','hcj']
print(lst)
- 列表的第二种创建方式,使用使用内置函数list()
lst2=list(['hello','world','hcj'])
print(lst2)
3.列表的特点
? **注意 ** 从前往后正数,从后往前负数
4.列表的查询操作
+ 获取列表中指定元素的索引
lst=['hello','world','hcj','hello']
print(lst.index('hello'))
print(lst.index('hcj'))
print(lst.index('tn'))
''' 报错 raceback (most recent call last):
File "D:\编码\pythonProject\main.py", line 4, in <module>
print(lst.index('tn'))
alueError: 'tn' is not in list
'''
print(lst.index('hello',1,4))
+ 获取列表中的单个元素
lst=['hello','hcj','python','tn']
print(lst[3])
print(lst[-1])
+ 获取列表当中的多个元素
lst=['hello','hcj','python','tn']
print(lst [1:3:1])
lst=['hello','hcj','python','tn']
print(lst [1:4:2])
lst=['hello','hcj','python','tn']
print(lst [:4:3])
lst=['hello','hcj','python','tn']
print(lst [1:4:])
lst=['hello','hcj','python','tn']
print(lst [1::2])
print('--------step 步长为负数--------')
print('原列表',lst)
print(lst[3::-1])
'''原列表 ['hello', 'hcj', 'python', 'tn']
['tn', 'python', 'hcj', 'hello']
'''
+判断指定元素在列表中是否存在及遍历
print('------in和not in--------')
lst=['hello','hcj','python','tn',10,20]
print(10 in lst)
print(10 not in lst)
print('------for in--------')
for item in lst:
print(item,end=' ')
```!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKKLkBf0-1639395454600)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20211129211612737.png)]
```python
lst=['hello','hcj','python','tn',10,20]
print('添加之前',lst)
lst.append(100)
print('添加之后',lst)
lst2=[1,2]
lst.extend(lst2)
print('添加之后',lst)
'''extend 可将列表化为元素加到后面
append将列表直接加入到后面
eg lst.append(lst2)
print('添加之后',lst)
['hello', 'hcj', 'python', 'tn', 10, 20, [1, 2]] '''
lst.insert(1,5)
print('添加之后',lst)
lst2=[1,2]
lst[1:]=lst2
print('添加之后',lst)
'''start决定从哪切
stop决定切到哪'''
+ 列表元素的删除操作
lst=[10,20,30,5,6,8,30]
lst.remove(30)
print(lst)
lst=[10,20,30,5,6,8]
lst.pop(2)
print(lst)
lst=[10,20,30,5,6,8,30]
lst.pop()
print(lst)
lst=[10,20,30,5,6,8,30]
lst2=[1,2,3,4]
lst[2:]=lst2
print(lst)
lst.clear()
print(lst)
del lst
print(lst)
'''报错
NameError: name 'lst' is not defined.
'''
+列表元素的修改操作
lst=[1,2,3,4]
lst[2]=10
print(lst)
lst[1:3]=[30 ,40 ,50]
print(lst)
+ 列表元素的排序操作
lst=[1,10,20,30,5,6]
print('输出前的列表',lst,id(lst))
lst.sort()
print('排序后的列表',lst,id(lst))
'''输出前的列表 [1, 10, 20, 30, 5, 6] 2433745549632
排序后的列表 [1, 5, 6, 10, 20, 30] 2433745549632
'''
print('排序后的列表',lst,id(lst))
lst.sort(reverse= True)
print(lst)
print('-----使用内置函数sorted()对列表进行排序,将产生一个新的列表对象---------')
lst=[10,2,30,4,50,6]
print('原列表',lst)
new_list=sorted(lst)
print(lst)
print(new_list)
'''原列表 [10, 2, 30, 4, 50, 6]
[10, 2, 30, 4, 50, 6]
[2, 4, 6, 10, 30, 50]
'''
new_list=sorted(lst,reverse=True)
print(new_list)
6. 列表生成式
]
lst=[ i for i in range(1,10)]
print(lst)
lst=[ i+i for i in range(1,10)]
print(lst)
总结
参考视频: https://www.bilibili.com/video/BV1wD4y1o7AS?spm_id_from=333.999.0.0
|