文章目录

  • 1. 数据类型和变量
  • 2. 字符串和编码
    • 2.1 字符编码
    • 2.2 字符串
    • 2.3 格式化
    • 2.4 小结
  • 3. 列表和元组
    • 3.1 List
    • 3.2 Tuple
  • 4. 条件判断
  • 5. 循环
  • 5. dict和set
    • 5.1 dict
    • 5.2 set


1. 数据类型和变量

  • Python还允许用r’’’'表示内部的字符串默认不转义
  • 如果字符串内部既包含’又包含" 可以用转义字符\来标识
  • Python允许用’’’ … ‘’'的格式表示多行内容
  • 在Python中赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量[动态语言]
  • [静态语言:Java…]在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错
  • 在Python中,通常用全部大写的变量名表示常量
print(*objects, sep=' ', end='\n', file=sys.stdout)
objects --表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。
sep -- 用来间隔多个对象,默认是空格。
end -- 用来设定以什么结尾。默认值是换行符 \n,可以换成其他字符。
file -- 要写入的文件对象。

2. 字符串和编码

2.1 字符编码

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码

2.2 字符串

  1. Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

  2. 以Unicode表示的str通过encode()方法可以编码为指定的bytes

  3. 要把bytes变为str,就需要用decode()方法

  4. 用len()函数计算str中包含多少字符

2.3 格式化

  1. %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换
  2. 有几个%占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%,括号可以省略
  3. 格式化整数和浮点数还可以指定是否补0和整数与小数的位数;%s永远起作用,它会把任何数据类型转换为字符串;
  4. 有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
  5. format():用传入的参数依次替换字符串内的占位符{0}、{1}……
  6. f-string:与普通字符串的不同之处在于字符串如果包含{xxx},就会以对应的变量替换:

2.4 小结

python的除法

  • 真正的除法:/ 返回真正的商,不管除数(被除数)的数据类型,都返回浮点型
  • 地板除法:// 直接舍去小数部分,返回整数部分
  • 取余:% 返回余数,没有就返回0

3. 列表和元组

3.1 List

一种有序的集合,可以随时添加和删除其中的元素

  1. len()获取list元素个数
  2. 用索引访问list中每一个位置的元素(索引从0开始)确保索引不要越界,记得最后一个元素的索引是len(classmates)-1;用-1做索引直接获取最后一个元素,-2倒数第二个,将-?想象成倒数第?个
  3. 用append()函数可以向list末尾追加元素;insert(i,内容) 将元素插入到指定位置I
  4. pop() 删除list末尾元素 ,pop(i)删除指定位置元素,i是索引位置
  5. 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
  6. list里面的元素数据类型可以不同,list元素也可以是另一个list
  7. 获取s中L的元素 s[][],将s看成是一个二维数组

3.2 Tuple

tuple和list非常类似,但是tuple一旦初始化就不能更改

  1. 没有append()、insert()等方法,其他获取元素的方式相同(利用索引),但无法赋值成另外的元素

  2. 因为tuple不可变,所以代码更安全。

  3. 只有1个元素的tuple定义时必须加一个逗号,来消除歧义,避免被误会成小括号

  4. ”可变“的tuple:tuple里面的元素存在list,其中list里面的元素可变,但是作为tuple元素指向的list没有改变

4. 条件判断

  • if语句执行从上往下判断,如果在某个判断上是True,将该判断对应的语句执行后,就忽略掉剩下的elif和else if

  • 判断条件还可以简写,eg.只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。

    input()返回的数据类型是str,str不能直接和整数比较,
    必须先将str转换成整数——利用int()函数完成,
    但int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了
    

5. 循环

python中有两种循环

① for…in循环
依次把list或tuple中的每个元素迭代出来,for x in …循环就是把每个元素代入变量x,然后执行缩进块的语句

range()函数:可以生成一个整数序列,再通过list()函数可以转换为list

②while循环
只要条件满足,就不断循环,条件不满足时退出循环。
通常配合if语句得使用:break可以提前退出循环;continue语句,跳过当前的这次循环,直接开始下一次循环

5. dict和set

5.1 dict

字典,键值对

  • 一个key只能对应一个value
  • 如果key不存在,dict就会报错
  • 通过in判断key是否存在
  • 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
  • 用pop(key)方法删除key
  • dict内部存放的顺序和key放入的顺序是没有关系的
  • dict中的key是不可变对象,dict利用hash算法根据key来计算value的存储位置

【在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key】

5.2 set

一组key的集合,不存储value

  1. 创建set需要提供一个list作为输入集合,重复元素在set中被自动过滤
  2. 通过add(key)方法可以添加元素到set中,remove(key)删除元素
  3. set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集&、并集|等操作
  4. set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等

tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的

更多推荐

【廖雪峰python教程学习】——(一)python基础