疫情环境下的网络学习笔记 python Day 04

2.25

上午

今日内容:for循环,基本数据类型相关操作(int,float,str,tuple,str,dict,set)

上节课回顾

赋值运算符

  1. 交叉赋值

    x,y = y,x

  2. 链式赋值

    c = b = a = 10

    快捷键 光标在中间的时候 shift + enter 光标直接跳到下一行

  3. 解压赋值

    x, y, *_ , z = [1,2,3,4,5,6]

    *:没有对应上的值存成一个列表

逻辑运算

  1. 优先级:() > not > and > or

    方法:先计算not,再把and两边紧连的条件用括号括起来,只剩下or,也就是顺序运算

  2. 短路运算

    偷懒原则:and 和 or 会在确定计算结果的时候返回,

    and 最终返回的值是当前运算的值

    10 and 12 返回 12

    0 and 11 返回0

  3. 可以当作条件使用的有三种

    • 明确的布尔值:True,False
    • 运算结果可以当作布尔值: == ,!= ,< ...
    • 使用数据类型隐藏的布尔值
      • 0,None,空 都表示False,其余都为True
      • 了解:条件中 放 1 比 True 效率高,一点点

while循环

  1. 基本语法

    while 条件:
        子代码块
        子代码块
  2. 死循环:永远不会结束的循环

    i/o操作不会让计算机死机:执行一次后会有一点时间停顿

  3. 结束循环的方式

    1. break:立即终止本层循环
    2. 把条件改成假:进入下一次循环的时候判断条件为假,停止循环
  4. while + continue

    结束本次循环,直接进入下一次循环

    continue后面的同级代码不会执行

  5. while + else

    else 的子代码块会在while 循环结束后,并且是在没有被break终止的情况下才会执行

新课

for 循环

针对循环取值操作,while循环并不擅长,于是python提供了一个专门循环取值操作:for 循环

students = ['deimos','aaa','bbb']
for x in students
print(x)

for 循环字典,默认取出来的是字典的key,要取value,要操作dic[x]

for 循环字符串,拆解,一个个取出每一个字符

for 循环的次数取决于对象的长度

总结

  • 重复执行某段代码,通常使用 while 循环
  • 针对循环取值操作,通常使用 for 循环

range()

生成一个数字列表,从0开始,顾头不够尾

range(5) :从0开始,生成一个5个长度的列表 [0,1,2,3,4]

指定开头

range(1,5) :从1 开始,到 5 为止生成一个要头不要尾的列表: [1,2,3,4]

指定步长

range(2,9,3) :从1 开始,到 8 为止,以3为步长,生成一个要头不要尾的列表 :[2,5,8]

用range来模拟 for 循环次数

len()

统计列表,元组,字典,集合的长度

总结

while于for不同之处

  1. while通常用来循环执行代码,for通常用来取值
  2. while的循环次数取决于条件什么时候为假,for的循环次数取决于 in 后的数据类型所包含的值的个数

for 跟range() 连用:

  • range用来产生一个数字序列,数字序列对应的是列表的索引,所以可以for + range() 可以按照索引编列列表,但是有更方便的 in 操作

for + break

​ 同 while 循环中的 break,直接跳出当层循环

for + else

​ 同 while 循环中的 else ,循环结束时,没有被break结束,才运行

for + continue

​ 结束当次循环,进入下一次循环

基本数据类型的常用操作

数字类型:int,float

操作

  • 比较运算:int 与 float 之间可以比较大小
  • 数学运算:+ - * / int 和 float之间也可也进行数学运算
    • 不同的数据类型不能进行这些操作,除了int 与float (数字与列表,列表与字典......)

字符串:str

字符串是由多个字符按照次序组成的

操作

  1. 按索引取值

    name = 'deimos'
    print(name[0])  # 输出 d

    字符串只能取值,不能赋值

  2. 切片(步长,要头不要尾)

    取出其中一段字符串,成为一个新字符串,并不会真的修改原字符串

    只要有索引的数据类型都可以进行切片

    使用冒号 起始索引:结束索引

    name = 'deimos'
    print(name[1:3])  # 输出 eim

    name[0:10:2] :隔一步做切割,步长为2,跟range 类似

    如果 name[::] :默认起始位置0,一直到结尾,步长为1

  3. 获取长度 len()

    只要包含多个元素的,用 len() 获取对象长度

  4. 其他操作

    • .upper() 全部大写

      a = 'deimos'
      print(a.upper()) # 输出 DEIMOS
    • .lower() 全部小写

    • .find() 在字符串中查找指定字符串,返回字符串索引位置,找不到则返回 -1

      a = 'deimos'
      print(a.find('s'))  # 输出 5
    • .index() 同上,找不到会报错

    • .count() 统计指定字符串出现的次数

      • find,count,index方法也适用于列表

下午

需求,判断input是否为空:

  1. 空的布尔值为False,判断 if not input 若input为空,则条件为真
  2. 输入字符串的长度 len(input) == 0

成员运算 in

判断一个字字符串是否存在一个大字符串中

'deimos' in 'deimoschen'
# 结果为True

not in:判断是否不在里面

移除字符串左右两侧的字符 strip

'   adc   '.strip()  # 输出 abc

如果 strip() 中不放参数,则默认去除左右两侧空格,如果放人参数,则去掉相应的字符,参数可以指定多个。

程序从左出发,遇到第一个不属于要去除的参数,则停止;再从右边出发,遇到第一个不属于要去除的参数,停止

print('*-=<abc*/-?'.strip('*=/-?'))  #输出 <abc

切分字符串 split

以某个分隔符(或字符串)为切分符号,把字符串切换成列表

用于有明确分割符号的字符串,如 'aaa,male,21,201632000112'

print('aaa,male,21,201632000112'.split(','))
# 输出 ['aaa', 'male', '21', '201632000112']

如果没有匹配的字符串,则把整个字符串作为列表中的一个元素,返回

列表 list

于字符串非常类似,不同点在于可以进行赋值

按照索引取值:list[0:4]

成员运算: in / not in

切片:从一个大列表中复制出一个字列表,要头不要尾

长度 :len()

追加 .append()

向列表的==末尾==添加一个元素

不能向不存在的索引赋值,要向列表里面加值,必须用 append

插入 .insert

往列表指定的位置之前插入一个值

l = ['aaa','bbb','ccc']
l.insert(1,'ddd')
# 得到 ['aaa','ddd','bbb','ccc']

万用删除 del

只要是可变的值,都可以用del进行操作

列表删除

.remove() 移除元素,必须指定删除的元素

l = ['aaa','bbb','ccc']
l.remove('aaa')

列表的remove操作返回 None ,不返回任何值

字典

用key可以存取值

dic = {'aaa':111,'bbb':222,'ccc':333}

对字典来说,key存在则修改对应的value ,key不存在则新添加一个 key:value

取值 :dic[key]

长度 len(dic) 返回键值的对数

成员运算

在用字典成员运算 in 时,判断的时key,不是value

删除操作 dic.pop

dic.pop(key) 指定元素进行删除,pop返回被删除元素的value

v
res = dic.pop('aaa')
print(res)  # 输出结果为 111

获取键、值

dic.keys()

dic.values()

dic.items()

在python2中得到列表,相当于拿到一筐鸡蛋

在python3中不得到列表,相当于拿到一只能下单的鸡,是对于py2的优化,比py2节省空间。py3中可以用在 for 循环里使用

遍历字典的value

for k in dic.values():
    print(k)

一步到位,循环字典里的key和value

dic = {'aaa':111,'bbb':222,'ccc':333}
for key,values in  dic.items():
    print(key,values)

输出结果

aaa 111
bbb 222
ccc 333

猜你喜欢

转载自www.cnblogs.com/telecasterfanclub/p/12363011.html