流程控制之for循环
语法
循环:重复(按照某种规律的)做一件事情
name_list = ['nick','jason','tank','sean']
n = 0
while n < 4 :
# while n < len(name_list)
print(name_list[n])
n += 1
nick
jason
tank
sean
字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。
info = {'name':'nick','age':19}
for item in info:
# 取出info的keys
print(item)
name
age
name_list = {'nick','jason','tank','sean'}
for item in name_list :
print(ltem)
nick
jason
tank
sean
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。
print(list(range(1,10))
[1,2,3,4,5,6,7,8,9]
for i in range(i,10): # range顾头不顾尾
print(i)
1
2
3
4
5
6
7
8
9
for循环按照索引取值
name_list = ['nick','jason','tank','sean']
for i in range(5) : # 5是数的
for i in range(len(name_list)):
print(i, name_list[i])
0 nick
1 jason
2 tank
3 sean
for + break
for循环调出本层循环。
for+break
name_list = ['nick','jason','tank','sean']
for name in name_list :
if name == 'jason':
break
print(name)
nick
for + continue
for循环调处本次循环,进入下一次循环
for+continue
name_list = ['nick','jason','tank','sean']
for name in name_list:
if name == 'jason':
continue
print(name)
nick
tank
sean
for循环嵌套
外层循环循环一次,内层循环循环所有的。
for循环嵌套
for i in range(3):
print(f'-----:{i}')
for j in range(2):
print(f'*****:{j}')
-----:0
*****:0
*****:1
-----:1
*****:0
*****:1
-----:2
*****:0
*****:1
for+else
for循环没有break的时候触发else内部代码块
for+else
name_list = ['nick','jason','tank','sean']
for name in name_list:
print(name)
else:
print('for循环没有被break')
nick
jason
tank
sean
for循环没有break中断掉
for循环实现loading
import time
print('Loading',end='')
for i in range(6):
print(".",end='')
time.sleep(0.2)
Loading......
整型内置方法(int)
用途:年龄、号码、等级
定义:可以使用int()方法将纯数字的字符串转为十进制的整型
age = 19 # age = int(10)
print(type(age))
<class 'int'>
x = int('111')
print(type(x))
<class 'int'>
x = int('11.1') #报错
print(x)
常用操作+内置:算术运算+比较运算
存在一个值or多个值:一个值
有序or无序:无这一说法
1.1、可变or不可变
id不变值可变,即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。
age = 19
print(f'first:{id(age)}')
age = 20
print(f'second:{id[age]')
first:4384901776
second:4384901808
可变or不可变:不可变数据类型。
二、浮点型内置方法(float)
1.定义:可以使用float()方法将纯数字的字符串转成浮点型数字。
age = 3.1 # age = float(3.1)
print(type(age))
<class 'float'>
x = float('111')
print(x)
print(type(x))
111.0
<class 'float'>
x = float('11.1')
print(type(x))
<class 'float'>
常用操作+内置方法:算术运算+比较运算
存一个值or多个值:一个值
有序or无序:无有序or无序一说
salary = 3.1
print(f'first:{id(salary)}')
salary = 5.1
print(f'first:{id(salary)}')
first:4423173584
second:4423173800
可变or不可变:不可变数据类型
列表类型内置方法(list)
1.定义:[]内可以有多个任意类型的值,逗号分隔元素
my_girl_friend = list(['jason','tank','sean'])
my_girl_friend = ['jason','tank','sean']
print(f"my_girl_friend:{my_girl_friend}")
my_girl_friend: ['jason', 'tank', 'sean']
l = list('hello nick')
print(f"l;{l}")
l: ['h', 'e', 'l', 'l', 'o', ' ', 'n', 'i', 'c', 'k']
优先掌握
按索引取值(正向取值+反向取值),即可存也可取
切片
长度len
成员运算in和not in
追加append
删除del
循环
按索引取值(正向取值+反向取值),即可存也可以取
lt = [1,2,3,4]
print(lt[1])
''' lt[1] = 3
print(lt) '''
2
切片
list之切片
name_list = ['nick','jason','tank','sean']
print(f"name_list[0:3:2]:{name_list[0:3:2]}")
name_list[0:3:2] : ['nick','tank']
长度(len)
list之长度
name_list = ['nick','jason','tank','sean']
print(f"len(name_list):{len(name_list)}")
len(name_list): 4
成员运算in和not in
num = ['1','2','3']
print(f"'1' in num : {'1' in num}")
print(f"'4' in num : {'4' in num}")
'1' in num : True
'4' in num : False
追加值(append)
num = ['1','2','3']
num.append('4')
print(f"num:{num}")
num:['1','2','3','4']
删除(del)
num = ['1','2','3']
del num[2]
print(f"num:{num}")
num:['1','2']
循环(for in)
num = ['1', '2', '3']
for i in num:
print(i)
for i in range(len(num)):
print(f'第{i}项:{num[i]}')
第0项:1
第1项:2
第2项:3
需要掌握
insert
pop
remove
count
index
clear
copy
extend
reverse
sort
1.insert()
num = ['1','2','3']
num.insert(1,'6')
print(f"num.insert:{num}")
num.insert:['1', '6', '2', '3']
pop()
pop()默认删除最后一个元素
num = ['1','6','2','3']
a = num.pop(1)
print(f"num.pop(1):{a}")
print(f"num:{num}")
num.pop(1):6
num:['1','2','3']
remove()
remove()只知道删除的值
num = ['1','6','2','3']
a = num.remove('6') # remove()没有返回值 None
print(f"num.remove('6'):{a}")
print(f"num:{num}")
num.remove('6'):None
num:['1', '2', '3']
count()
count()计算元素数量
num = ['1','1','2','3']
print(f"num.count('1'):{num.count('1')}")
num.count(1):2
index()
index()索引值
num = ['1','2','3']
print(f"num.index("1"):{num.index("1")}")
num.index('1'):0
clear()
clear()清空列表
num = ['1','2','3']
num.clear()
print(f"num.clear:{num}")
name_list: []
copy()
copy()复制整个列表
num = ['1','2','3']
print(f'num.copy():{num.copy()}')
num.copy:['1','2','3']
extend()
extend()拼接列表
num = ['1','2']
num_1 = ['3','5']
num.extend(num_1)
print(f"num:{num}")
num:['1', '2', '3', '5']
reverse
反转列表排序
num = ['1','2','3']
num.reverse()
print(f"num:{num}")
num:['3', '2', '1']
sort
按字母顺序永久性排序,列表的元素必须都是同类型
word = ['a','c','b','d']
word.sort()
print(f"word:{word}")
word.sort(reverse=True)
print(f"word_reverse:{word}")
word:['a', 'b', 'c', 'd']
word_reverse:['d', 'c', 'b', 'a']
存在一个值or多个值:多个值
有序or无序:you序
可变or不可变:可变
num = ['1','2','3']
print(f'first:{id(num)}")
num[2] = ' '
print(f'second:{id(num)}")
first:1908900516424
second:1908900516424
详见nick博客
字符串类型内置方法
定义:使用''、“”包裹的一串字符
name = 'nick' # name =str('nick')
s1 = str(1.1)
s2 = str([1, 2, 3])
print(f's1:{s1}, type:{type(s1)}')
print(f's2:{s2}, type:{type(s2)}')
s1:1.1, type:<class 'str'>
s2:[1, 2, 3], type:<class 'str'>
优先掌握
按索引取值
切片
长度len
成员运算in|not in
移除空白strip
切分split
循环
按索引取值(只可取不可改变)
str索引取值
msg = 'hello zzx'
012345678 # 索引序号
print(f'索引为6:{msg[6]}')
print(f'索引为3:{msg[-3]}')
索引为6: z
索引为-3: z
切片(顾头不顾尾,步长)
索引切片
msg = 'hello nick'
0123456789 # 索引序号
print(f'切片3-最后: {msg[3:0]}')
print(f'切片3-8:{msg[3:8]}')
print(f'切片3-8,步长为2:{msg[3:8:2]}')
print(f'切片3-最后,步长为2:{msg[3::2]}')
了解,步长为正从左到右;步长为负从右到左
了解,步长为正从左到右;步长为负从右到左
print('\n了解知识点')
print(f'切片所有: {msg[:]}')
print(f'反转所有: {msg[::-1]}')
print(f'切片-5--2: {msg[-5:-2:1]}')
print(f'切片-2--5: {msg[-2:-5:-1]}')
切片3-最后: lo nick
切片3-8: lo ni
切片3-8,步长为2: l i
切片3-最后,步长为2: l ik
** 了解知识点 **
切片所有: hello nick
反转所有: kcin olleh
切片-5--2: ni
切片-2--5: cin
长度len
str长度
msg = 'hello nick'
print(len(msg))
10
成员运算in和not in
str成员运算
msg = 'my name is nick, nick handsome'
print(f"'nick' in msg: {'nick' in msg}")
print(f"'jason' not in msg: {'jason' not in msg}")
print(f"not 'jason' in msg: {not 'jason' in msg}")
'nick' in msg: True
'jason' not in msg: True
not 'jason' in msg: True
移除空白strip()
str移除空白strip()
name = '&&&n ick'
print(f"name.strip('&'): {name.strip('&')}") # strip()默认为‘ ’,并且不修改原值,新创建空间
print(f"name: {name}")
strip()应用场景
pwd = input('password: ') # 用户可能会手抖输入空格
if pwd.strip() == '123':
print('密码输入成功')
print(f"'-& nick+'.strip('-& +'): {'-& nick+'.strip('-& +')}")
name.strip('&'): n ick
name: &&&n ick
password: 123
密码输入成功
'-& nick+'.strip('-& +'): nick
切分split
str切分split
info = 'nick:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':', 1)
print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')
info_list1:['nick', 'male', '19']
info_list2:['nick', 'male:19']
循环
msg = 'hello nick'
for i in msg:
print(i)
h
e
l
l
o
n
i
c
k
需要掌握
lstrip&rstrip
lower&upper
startswith&endswith
rsplit
join
replace
isdigit
详见nick博客
存在一个值or多个值:一个值
有序or无序: 只要是有索引的,都是有序的,因此字符串是有序的。
可变or不可变: 不可变数据类型