day06课堂小结

流程控制之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不可变: 不可变数据类型

猜你喜欢

转载自www.cnblogs.com/shin09/p/11522589.html
今日推荐