python(一) 基础
-
概述
-
语法基础
注释 输入输出
-
数据类型
整数 浮点数 复数 布尔 转换函数 运算符 字符编码
概述
创始人:荷兰人Guido
执行原理:
- 将源代码 m.py 编译成字节码 m.pyc
- 将编译好的字节码转发到Python虚拟机(PVM)上运行
应用领域:Web开发,科学计算,操作系统管理,桌面应用,服务器软件,游戏
基础
注释:
#单行注释
"""
多行注释
"""
str = 'python通常一行写完一条语句,如果语句过长\
加右下划线换行'
输出:
print()函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
print('The quick brown fox', 'jumps over', 'the lazy dog')
print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
print()也可以打印整数,或者计算结果:
>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300
输入:
Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
name = input('please enter your name: ')
print('hello,', name)
变量:
Python中同一个变量可以反复赋值,而且可以是不同类型的变量,这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型。
常量:
在Python中,通常用全部大写的变量名表示常量:但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法。
数据类型
整型(int):
二进制:0b101010
八进制:0o1011
十进制:64
十六进制:0x14
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
浮点型(Float):
可以用十进制或者科学计数法表示,如:3.5e-5
复数类型:
由实部和虚部构成:real + imag j,real和imag都是浮点型
布尔类型:
只有两个值True和False
a = 0
print(bool(a)) #整数0False
b = 0.0
print(bool(b)) #实数0.0False
s=''
print(bool(s)) #空串False
lis = []
print(bool(lis)) #空列表False
dic = {}
print(bool(dic)) #空字典False
a = None
print(bool(a)) #None表示空False
转换函数 | 说明 |
---|---|
int(x [,base]) | 将base进制的x转换为一个十进制整数 |
float (x) | 将x转换为一个浮点数,默认6位小数 |
complex(real [,imag]) | 创建一个复数 |
复合赋值运算符 | 说明 |
---|---|
+= | 加法 |
-= | 减法 |
*= | 乘法 |
%= | 求模 |
**= | 幂运算 |
/= | 除法 |
//= | 取整除法 |
逻辑和成员运算符 | 说明 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 逻辑非 |
in | 如果x in 序列 b,返回True |
not in | 如果x in 序列 b,返回False |
按位运算与&,或|,非^,左移<<,右移>>
字符串字符编码:
ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
>>> ord('B')
66
>>> ord('爱')
29233
>>> chr(66)
'B'
>>> chr(29233)
'爱'
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。
如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的字节流。
Python对字节流类型的数据用带b前缀的单引号表示:
x = b'ABC'
要注意区分’ABC’和b’ABC’,前者是str,是用Unicode编码表示的,
后者是比特流每个字符都只占用一个字节。
str通过encode()方法可以编码为比特流,例如:
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
要计算str包含多少个字符,可以用len()函数:
>>> len('ABC')
3
>>> len('中文')
2