1.输入和输出
name = input('please enter your name: ')
print('hello,', name)
2 数据类型
2.1 整数
可以处理任意大小的整数
2.2 浮点数
1.23
1.23e9
1.2e-5
2.3 字符串
用'或"括起来
如果字符串内出现'或",前加\进行转义
Python还允许用r''表示''内部的字符串默认不转义
Python允许用'''...'''的格式表示多行内容
>>> print('''line1
... line2
... line3''')
2.4 布尔值
True和False
可以用and or not进行运算
2.5 空值
None
2.5 变量
a='ABC'
Pthon解释器干了两件事情:
在内存中创建了一个'ABC'的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC'。
2.6 常量
PI = 3.14159265359
但实际为变量
2.7 除法运算
10 / 3
3.3333333333333335
10 // 3 #地板除
3
3 字符编码
8个比特bit为一个字节byte
ASCII存储大小写英文字母、数字和一些符号,只需要一个字节
GB2312编码,用于存储中文,2个字节
Unicode把所有语言都统一到一套编码里,2个字节,但是浪费存储空间
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节
Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。
如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:
如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:
要计算str包含多少个字符,可以用len()函数:
为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码
当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
!/usr/bin/env python3
-- coding: utf-8 --
4 格式化输出
%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
格式化整数和浮点数还可以指定是否补0和整数与小数的位数
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%