Python基础汇编

目录

  • 1.基础语法
    • 1.1编码
    • 1.2多行语句、多个变量赋值
    • 1.3标准数据类型
    • 1.4传递引用
    • 1.5基本操作符
    • 1.6基本函数/语句
  • 2.Set(集合)
  • 3.数字数据类型

本文仅是个人学习摘录所用,摘录自菜鸟教程

1.基础语法

1.1编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 -*-

1.2多行语句、多个变量赋值

可以使用反斜杠()来实现多行语句,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠()

a = 1+\
    2+\
    3
a = b = c = 1
a, b, c = 1, 2, "cat"

1.3标准数据类型

Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

1.4传递引用

在变量保存可变数据类型的值时,例如列表或字典,python变量就使用引用,引用是一个值,指向内存存储的数据,对于不可变的数据类型的值,python变量就保存值本身。

1.5基本操作符

1、数学操作符

符号 求值
2**3 8
22%8 6
22//8 2
22/8 2.75
3*5 15
+
-

优先级:

  • **(先求值)
  • *、/、//、%(再求值,从左到右)
  • +、-(最后求值,从左到右)

2、字符串连接和复制

  • ‘Alice’ + ‘Bob’——‘AliceBob’
  • ‘Alice’ * 5——‘AliceAliceAliceAliceAlice’

3、布尔值、比较操作符、布尔操作符

  • 布尔值:True、False
  • 比较操作符:== 等于 != 不等于 <小于 >大于 <=小于等于 >=大于等于。
    比较操作符根据提供的值,求值为True或False
  • 布尔操作符:and、or、not
  • 优先级:not——and——or
  • 0、0.0、’’(空字符串)在条件中,也会被认为是False,其他被认为是True
    4、赋值操作符
    =、+=、-=、*=、/=、%= 、**=、//=、:=
    +=:可完成字符串和列表的连接
    *=:可完成字符串和列表的复制
    := ( 海象运算符,可在表达式内部为变量赋值)
    5、位运算符
    按位运算符是把数字看作二进制来进行计算的
运算符 描述
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^ 按位异或运算符:当两对应的二进位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0
 
c = a & b;        # 12 = 0000 1100
print ("1 - c 的值为:", c)
 1 - c 的值为: 12
c = a | b;        # 61 = 0011 1101 
print ("2 - c 的值为:", c)
 2 - c 的值为: 61
c = a ^ b;        # 49 = 0011 0001
print ("3 - c 的值为:", c)
 3 - c 的值为: 49
c = ~a;           # -61 = 1100 0011
print ("4 - c 的值为:", c)
 4 - c 的值为: -61
c = a << 2;       # 240 = 1111 0000
print ("5 - c 的值为:", c)
 5 - c 的值为: 240
c = a >> 2;       # 15 = 0000 1111
print ("6 - c 的值为:", c)
6 - c 的值为: 15

6、成员运算符
in : 如果在指定的序列中找到值返回 True,否则返回 False
not in : 如果在指定的序列中没有找到值返回 True,否则返回 False
6、身份运算符
is : 判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回 True,否则返回 False
is not : 判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果 True,否则返回 False。

1.6基本函数/语句

1、type() 函数可以用来查询变量所指的对象类型
2、del语句删除一些对象引用,单个或多个对象

del var_a, var_b
del var1[,var2[,var3[....,varN]]]

3、数据类型转换传入其他数据类型,得到相应类型的值

函数 属性
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

4、len()接受一个字符串/列表/元组/字典,求字符串中字符/列表元素/元组元素/字典键值对的数目
5、elif语句:顺序很重,执行一次True,后面的elif语句不再执行
6、break、continue语句:break跳出循环,continue回到循环开始处,重新对循环条件求值
7、range():range(10, -1, -1)第一个参数是开始的值,第二个参数是上限,但不包含它,第三个是增加的值,可以是正数,也可以是负数,返回值是序列值(类似列表)
8、print():关键字end、sep
如果字典本身包含嵌套的列表或字典,导入pprint模块,使用pprint()和pformat()函数,会比print()输出结果更干净,pprint()显示在屏幕,pformat()用于保存为文本的字符串

 print('Hello', end='')
 print('World')
 >HelloWorld
 print('cats', 'dogs', 'mice')
 >cats dogs mice
 print('cats', 'dogs', 'mice', sep=',')
 >cats,dogs,mice

9、global语句:在函数中,使用“global+全局变量”,将会创建全局变量,而不是创建局部变量
10、try, except语句:若执行try出错ZeroDivisionError,执行except,否只执行try

try:
    print(spam[2])
except ZeroDivisionError:
    print('Error:Invalid argument.')

2.Set(集合)

可以使用大括号 { } 或者 set() 函数创建集合
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
基本功能是进行成员关系测试和删除重复元素。

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites)   # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
{'d', 'b', 'c', 'r', 'a'}
print(b)
{'c', 'z', 'l', 'm', 'a'}
print(a - b)     # a 和 b 的差集
{'r', 'b', 'd'}
print(a | b)     # a 和 b 的并集
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
print(a & b)     # a 和 b 的交集
{'c', 'a'}
print(a ^ b)     # a 和 b 中不同时存在的元素
{'z', 'b', 'm', 'r', 'l', 'd'}

3.数字数据类型

  1. 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
  2. Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

1. 数学函数

  1. 内置函数及math模块
函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
(x>y)-(x 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 返回指数,如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。四舍六入,应注意尾数为5的数值,保留值将保留到离上一位更近的一端
sqrt(x) 返回数字x的平方根。math.sqrt()

round(2.675, 2) 的结果,不论我们从python2还是3来看,结果都应该是2.68的,结果它偏偏是2.67。在机器中浮点数不一定能精确表达(2.67499999…),因为换算成一串1和0后可能是无限位数的,机器已经做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。
除非对精确度没什么要求,否则尽量避开用round()函数。近似计算我们还有其他的选择:

  • 使用math模块中的一些函数,比如math.ceiling(天花板除法)。
  • python自带整除,python2中是/,3中是//,还有div函数。 字符串格式化可以做截断使用,例如 “%.2f” % value(保留两位小数并变成字符串……如果还想用浮点数请披上float()的外衣)。
  • 当然,对浮点数精度要求如果很高的话,请用decimal模块。

2. 随机数函数

  1. random模块
函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,stop不包含在范围内,按指定基数step递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

3. 三角函数

  1. random模块
函数 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(xx + yy)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度

4. 数学常量
pi :数学常量 pi(圆周率,一般以π来表示)
e :数学常量 e,e即自然常数(自然常数)。

你可能感兴趣的:(Python基础汇编)