Day3&Day4 Python学习笔记&关键注意点

Part 1:Python学习笔记

===================

4.4.字典表 dict

4.4.1. 示例1:{}声明

  • 定义:d = {'ISBN':'234234',‘Title’:‘Python 入门’,'Price':39.00}
  • 显示值:d['Title'] --> 'Python 入门'
  • d['Price'] --> 39.00
  • 追加:d['Author'] = 'Jerry' 注意:字典表对于不存在的键值会自动追加,但是list不可以这么操作
  • 得到键值:d.get('Price') --> 39.00
  • 返回没有取得键值:d.get('price',0.0) --> 0.0
  • 支持原位改变:d['Price']=99.00

4.4.2.示例2:函数声明

  • 定义:emp = dict(name='Mike',age=20,job='Dev')
  • len(emp) --> 3
  • 合并操作:1. dep={'department':'技术部'}; 2. emp.update(dep)
  • 弹出键值:emp.pop('age') --> 20

4.4.3.声明

  • {键:值, ...}
  • dict(键=值)

4.4.4.操作

  • 获取
    • d['键']
    • d.get('键',默认值)
  • 合并
    • d.update(d2)

4.4.5.属性

  • keys()
  • values()
  • items() : Key+value
  • 支持嵌套:emp = {'age':20,'name':{'firstname':'Jerry','lastname':'lee'},'dept':'行政部'}

4.4.6.排序键

  • 将keys()放入列表
    • ks = list(d.keys())
    • ks.sort()
  • 使用全局函数sorted()
    • ks = d.keys()
    • for k in sorted(ks):
    • Print(k,d.get(k))

4.5. 元组 tuple

4.5.1.特征

  • 任意对象的有序集合
  • 通过下标访问
  • 属“不可变”类型
    • t = (1,2,3,4,5)
    • t[0]=99 --> 报错
  • 长度固定,任意类型,任意嵌套

4.5.2.声明

  • (元素,)即(1,2)
    • 1,2 省略()的声明
  • index(val): 查找索引
  • count(val): 统计数量

4.5.3.计算

  • (1,2)+(3,4) --> (1,2,3,4)

4.5.4.赋值

  • x = (40,) --> (40,)
  • x = 40, --> (40,)
  • len(x) --> 1

4.5.5.Named tuple

  • from collections import namedtuple
  • Employee = namedtuple('Employee',['name','age','department','salary'])
  • jerry = Employee('Jerry', age=30, department='财务部', salary=9000.00)
  • jerry.name --> 'Jerry'
  • jerry.salary --> 9000.0

4.6. 文件

4.6.1.基本语法

  • file = open(‘文件名”,mode)
  • mode
    • r 读
    • w 写
    • a 追加
    • b 二进制
    • 示例:f = open('data.bin','rb').read()
    • + 即可读,又可写
  • 示例
    • 新建立一个hello.txt的文件:myfile = open('hello.txt','w')
      • myfile.write('优品课堂\n') --> 5
      • myfile.write('Hello world!\n') --> 13
    • 读取一个存在文件:f = open('hello.txt')
      • f.read() 读取全部内容,相当于指针
      • f.readline() 每次读取一行信息
    • l = open('hello.txt').readlines() --> ['优品课堂\n','Hello world!\n']
      • for line in l:
      • print(line)
    • 中文显示正常:f = open('course.txt','w',encoding='utf8')
      • f.write('优品课堂 Python教程\n') --> 14
      • f.write('www.codeclassroom.com') --> 21
      • f.close()

4.6.2.操作

  • read()
  • readline()
  • readlines()
  • close()
  • 示例
    • x,y,z = 1,2,3
    • l = [1,2,3]
    • f = open('datafile.txt','w')
    • f.write('{},{},{}'.format(x,y,z)) -->5
    • f.write(str(l)) -->9
    • f.close()

4.6.3.pickle存取Python对象

  • dump(对象,目标文件)
  • load(文件)
  • 示例1:d = {'a':1,'b':2}
    • f = open('datafile.pkl','wb')
    • import pickle
    • pickle.dump(d,f)
    • f.close()
    • open('datafile.pkl','rb').read()
  • 示例二:f = open('datafile.pkl','rb')
    • data = pickle.load(f)

4.7.汇总

4.7.1.集合

  • 序列
    • 可变
      • 列表 list
    • 不可变
      • 字符串 str
      • 元组 tuple
      • 字节数组
  • 映射
    • 字典表 dict
  • 集合
    • Set

4.7.2.数字

  • 整型
    • int
    • boolean
  • 浮点型
    • float
    • Decimal
    • ... 分数

4.7.3.可调用

  • 函数 function
  • 生成器 Generator
  • 类 Class
  • 方法 Method

4.7.4.其他

    • 文件
    • None
    • 视图
    • ...

4.7.5.内部

  • Type
  • ...

5. 语句,表达式以及流程控制

5.1.代码风格

5.1.1.代码格式指南

  • PEP8
  • 缩进4空格
  • 一行不超过79个字符
  • 空行

5.2.赋值语句

5.2.1.示例1: x = 5

5.2.2.示例2:(x,y) = (5,10)

  • or x,y = 5,10

5.2.3.示例3:[x,y,z]=[10,20,30]

  • 交换:x,y = y,x
  • or [a,b,c]=(1,2,3)

5.2.4.示例4:a,b,c='uke'

  • a --> 'u'
  • b --> 'k'
  • c --> 'e'

5.2.5.基本

5.2.6.序列赋值

  • 示例1:a,b,c = 'you' 没问题
    • a,b,c = 'youpin' 报错
    • 1修改为
      • a,b,c = s[0],s[1],s[2:]
    • 2或修改为 a,b,*c = s

5.2.7.扩展序列解包赋值

  • *变量,获取剩余元素到list
    • 示例:s = 'youpin';a,b,*c = s

5.2.8.多目标赋值

  • a=b=c='uke'

5.2.9. 参数化赋值

  • x = 5; y = 6; x = x + y; x --> 11
  • a,b = 1,2; a += b; a --> 3
  • += 或者extend()来扩展列表值

5.3.表达式

5.3.1.函数调用

5.3.2.方法调用

5.3.3.字面值

5.3.4.打印操作

  • print()
    • sep='分隔符'
    • end='终止符'
    • file=指定文件
      • 示例:print(s,url,url2,end='......\n',file=open('result.txt','w',encoding='utf8'))

5.4.流程控制

5.4.1.if .. 语句

  • 一般格式
    • score = 75
    • if score >= 60:
    • print('及格')
    • else:
    • print('不及格')
  • 实现多重分支
  • 三元运算符
    • a = Y if X else Z
      • 示例:result = '及格' if score >= 60 else '不及格'

5.4.2.while循环

  • 一般格式
    • x = 'youpinketang'
    • while x:
    • print(x,end=' ')
    • x = x[1:]
  • break 跳出
  • continue 跳到循环的头,进行相面的循环
  • pass 占位符
  • else

5.4.3.for循环

  • 一般格式
    • for x in 目标序列:
      • 示例:for x in [1,2,3,4]
    • 后续语句pass
      • 示例:print(x, end=' ')
  • range() 返回生成器对象,不是列表
    • for x in range(1,100):
  • enumerate()
    • s = 'youpinketang'
    • for (idx, item) in enumerate(s):
    • print('{},{}'.format(idx + 1,item))

猜你喜欢

转载自www.cnblogs.com/hemin96/p/11366360.html
今日推荐