week Two summary

不熟悉知识点

知识点一:

1.进制

二进制表示方式:0b111
八进制表示方式:0o111
二进制表示方式:0x111
进制转换函数
bin(除二进制外其他数据) -> 二进制数
cot(除二进制外其他数据) -> 二进制数
hex(除二进制外其他数据) -> 二进制数

测试用例

bin(0xa15)
cot(0xa15)
hex(100)

2.python中支持科学计数法

1200 == 1.2e3
0.001 == 1e-3

3.for循环

3.1 字符串序列

for a in 'python':
  print(a)

3.2 列表序列(有序就可以按照索引遍历)

list_num = ['1', '2', '3', '4', '5', '6']
# 元素遍历
for item in list_num:
  print item 

# 下标遍历
for index in range(len(list_num)):
  print list_num [index]

3.3 元组序列

tuple_1 = 10, 23, 89, '小明'
tuple_2 = ('周一', '周二', '周三', '周四', '周五')
for item in tuple_1:
  print item 

for index in range(len(tuple_2 ))
  print tuple_2 [index]

3.4 字典序列

dog = {'name': '旺财', 'color': '黄色', 'age': 3, 'type': '土狗'}
# 关键字遍历
for key in dog:
    print(key, dog[key])

#间接遍历
for value in dog.values():
    print(value)

#字典元素遍历,一个元素就是一对键值
print(dog.items())
for key, value in dog.items():
    print(key,  value)

3.5 迭代器和生成器

# 迭代器
iter_1 = iter[24, 23, 31, [14, 15]]
for x in iter_1 :
  print('x:', x)
# 生成器
for x in range(99):
  yield str(x).rjust(3, '0')

4.range 函数

range(M, N, step) - 产生数字范围M ~ N-1, 每次增加step (注意:step是正整数N>M;step是负整数N

5.continue/break/return

continue是循环体中的关键字,用来结束当次循环
break是循环体中的关键字,用来结束整个循环
return是循环体中的关键字,用来结束整个循环,并提供一个返回值

6.print的定制

# sep表示多个数据直接的间隔,end为结束时的效果
print(10, 20, sep='+++++', end=' ')

7.转义字符

# \n - 换行(相当于回车)
# \' - 单引号字符(不是字符串开头/结尾标志)
# \" - 双引号本身(不是字符串开头/结尾标志)
# \\ - 反斜杠本身(让一个反斜杠失去转义的功能)
# \t - 制表符(相当于tab)
# 阻止转义: 在字符串的最前面加r/R,能够阻止字符串中所有的转义字符转义
print('=============================')
str4 = R'\thow\nare\nyou\"'
print(str4)

8.字符编码

# chr函数: chr(编码值) - 获取编码值对应的字符
# ord函数: ord(字符) - 获取指定字符对应的编码
print(chr(100), chr(0x5e00))
print(ord('余'), ord('婷'))

9.有序列表的查询

  1. 字符串:
    语法: 字符串[开始下标:结束下标:步长]
  2. 列表:

10.字符串操作

  1. 判断一个字符是否是中文(4e00-9fa5): '\ue400'<=char<='\u9fa5', '一'<=char<='龥'
  2. in 和 not in:字符串1 in 字符串2 - 判断字符串2中是否包含字符串1
    3.格式字符串: 在字符串中用格式占位符代替字符串中变化的部分,然后再使用数据对变化的部分进行赋值

格式占位符:
%s - 字符串
%d - 整数
%.Nf - 浮点数(N控制小数后小数的位数)
%c - 字符、字符对应的编码值

  1. 字符的对象方法
    ->调用这些方法生成的是一个新的字符串,原字符串不变
    1. 字符串.capitalize() - 将字符串中的第一个字符转换成大写字母
    1. 设置对齐方式
      字符串.center(width, fillchar) - 让字符串在新字符串中居中,width控制新子串的宽度,fillchar是填充字符
      字符串.rjust(width, fillchar)
      字符串.ljust(width, fillchar)
      字符串.zfill(width) <==> 字符串.rjust(width, '0')
  • 3.字符串1.count(字符串2) -> 统计字符串1中字符串2出现的次数
  • 4.字符串1.find(字符串2, startindex, endindex) -> 指定范围中进行查找
  • 5.字符串.join(序列) - 将序列中元素取出来,中间用指定字符串拼接在一起产生一个新的字符串
  • 6.max和min
  • 7.字符串.replace(old,new) - 将字符串中指定的旧字符串全部替换成新的字符串
  • 8.字符串1.split(字符串2) - 将字符串1按照字符串2进行切割,返回的是列表

11.列表操作

    1. 增加
      列表.append(元素) - 在列表的最后添加一个元素(修改原列表,不会产生新的列表)
      列表.insert(下标, 元素) - 在列表中指定下标前添加指定元素
  • 2.删除
    del 列表[下标] - 删除列表中指定下标对应的元素
    列表.remove(元素) - 删除列表中指定的元素

注意: 1.如果需要删除的元素在列表中有多个,只删最前面的一个
     2.如果要删除的元素不存在,程序会报错!

列表.pop() - 取出列表中最后一个元素
列表.pop(下标) - 取出列表中指定下标对应的元素

  • 3.in/ not in
    元素 in 列表 -> 判断列表中是否包含指定的元素

  • 4.常用方法
    列表.count(元素) -- 统计列表中指定元素的个数,返回一个整数
    列表.extend(序列) -- 将序列中的元素全部添加到列表中
    列表.index(元素) -- 获取指定元素对应的下标(如果元素有多个只取第一个)

列表.reverse() -- 反向列表(直接修改原列表)
列表.reversed(序列) -- 反向序列,不修改原序列而是产生新的序列(迭代器)

列表.sort() -- 将列表中的元素升序排序(从小到大)
列表.sort(reverse=True) -- 将列表中的元素降序排序(从大到小)
sorted(序列) -- 排序的时候不修改原序列,产生新的序列

列表.clear() -- 删除列表中所有的元素(清空列表)

列表.copy() -- 相当于列表[:], 将列表中的元素拷贝一份产生一个新的列表(浅拷贝)

12.字典操作

  1. 增加
    字典[key] = value - 如果key存在, 修改key对应的值; 如果key不存在,添加键值对
  2. 删除
    del 字典[key] - 删除字典中指定key对应的键值对。如果key不存在会报错
    字典.pop(key) - 取出字典中key对应的值。如果key不存在会报错
  3. in / not in
    key in 字典 - 判断字典中是否存在指定的key
  4. 字典方法
    字典.clear() - 清空字典
    字典.copy() - 拷贝字典中的键值对产生一个新的字典
    dict.fromkeys(序列, 值) - 创建一个新的字典,字典的key是序列的元素, key对应的value是值
    字典.setdefault(key, value) - 添加键值对(不能修改)
    字典1.update(字典2) - 使用字典2中的键值对去更新字典1(不存在添加、存在修改)

13.集合

1.增加
集合.add(元素) - 往集合中添加一个元素
集合.update(序列) - 将序列中的元素添加到集合中(自带去重)
2.删除
集合.remove(元素) - 删除集合中指定的元素。(元素不存在会报错!)

数学集合运算

  1. 并集:集合1 | 集合2 - 将两个集合中的元素合并产生新的集合
  2. 交集: & - 求两个集合公共的部分
  3. 差集: 集合1 - 集合2 --- 获取集合1中除了集合2以外的部分
  4. 补集: 集合1^集合2 --- 两个集合除了公共部分以外的部分

== : 判断两个变量地址对应的值是否相等
is : 判断两个变量存储的地址是否相等

14.函数

1.关键字参数: 以'形参名1=值1, 形参名2=值2...'格式来确定实参
2.注意: 如果既有位置参数又有关键字参数,位置参数必须写在关键字参数前面

3.python中类型只有说明的作用,没有约束的作用

  1. 参数赋默认值
  2. 参数名:类型

4.不定长参数 - 形参的参数不确定

  1. 声明函数的时候,在形参的前面加*,那么这个参数就变成不定长参数,可以同时接收多个位置实参(将这个参数变成元祖)
  2. 声明函数的时候,在形参的前面加, 那么这个参数也会变成不定长参数, 可以同时接收多个关键字实参(将这个参数变成字典)
    注意: 不带
    的参数要放在带
    参数的前面

5.匿名函数
1)语法
lambda 参数列表:返回值
2)说明
lambda - 关键字
参数列表 - 相当于普通函数的形参列表, 变量1,变量2,...
: - 固定写法
返回值 - 相当于普通函数函数体中的return语句。可以是除了赋值语句以外的任何语句

注意:
1.匿名函数本质还是函数,之前函数中将的语法绝大多数都适用(通过类型名对参数类型说明不支持的)
2.匿名函数能做的事情,普通函数都可以做。只是匿名函数简洁

变量作用域
1)全局变量: 没有声明在函数中的变量都是全局变量, 全局变量的作用域是从变量声明开始到整个py文件结束
2)局部变量: 声明在函数中的变量都是局部变量, 作用域是从变量声明到函数结束
3)global - 在函数声明一个全局变量(只能在函数中使用)

15.迭代器生成器

16.文件操作

open(file, mode='r',encoding=None) - 以指定的方式打开文件,并且返回文件对象
文件对象.read() - 返回文件中的内容(从读写位置获取到文件结尾)
文件对象.readline() - 读一行内容(从读写位置开始到一行结尾)
文件对象.write(内容) - 将内容写入指定文件

with open() as 文件对象:
文件的操作

1)json格式要求: a.一个json中有且只有一个数据 b.这个必须是json支持的数据类型的数据
2)json.loads(字符串, encoding=编码方式) - 将字符串转换成python对应的数据
3)json.dumps(数据) - 将python数据转换成json格式的字符串

你可能感兴趣的:(week Two summary)