python学习小笔记一

数据类型

整数,包括负整数,为方便用十六进制表示整数,前缀为0x,如0xff00。

浮点数,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5。

字符串,如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。

/除法的两个整数计算结果是浮点数,//地板除的两个整数结果是整数,%取余。

编码

8 bit(比特)= 1 byte(字节)

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

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

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

要计算str包含多少个字符,可以用len()函数

1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节

python读文件通常在开头加这两句

#!/usr/bin/env python3      第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释
# -*- coding: utf-8 -*-         第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多

常见占位符:%d整数,%f浮点数,%s字符串,%x十六进制整数

列表

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

list是一个可变的有序表,所以,可以往list中追加元素到末尾:classmated.append('Adam')

把元素插入到指定的位置,比如索引号为1的位置:classmates.insert(1,'Jack')

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:classmates.pop(1)

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:classmates[1]='Mike'

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改.

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:t=(1,)

dict字典,key-value存储,判断key是否存在,'name' in d。d.get()函数。

通过key计算位置的算法称为哈希算法(Hash)

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意abstest是文件名。

自定义函数

定义默认参数要牢记一点:默认参数必须指向不变对象!

定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数。

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra

命名关键字参数需要一个特殊分隔符**后面的参数被视为命名关键字参数。

猜你喜欢

转载自blog.csdn.net/your_elephant/article/details/82502267