一、Python第一个程序
对于大多数程序语言,第一个入门编程代码便是 “Hello World!”, Python3.x运行代码如下:
print("Hello World!")
二、注释
单行注释
# 我是单行注释
print("我是单行注释")
多行注释
'''
我是多行注释
'''
print("我是多行注释")
三、标识符
- 标识符由字母、数字、下划线组成,但不能以数字开头;
- 标识符不限长度,严格区分大小写;
- 可以使用Unicode字符,如汉字,但不推荐使用;
- 关键字不能用作标识符;
- 预定义的内置类、异常、函数(如float、input、print等),不建议用作标识符;
print(dir(__builtins__)) # 使用dir(__builtins__)可以查看预定义的内置类、异常、函数等名
以下两种是保留标识符类
__*__
,两个下划线开始和两个下划线结束,这样的名字常常是系统定义的函数名字,如__new__()
是创建新的对象,__init__()
是构造函数等- _*是特殊的标识符,在交互式方式中使用,代表最后的计算结果
>>> 100+200
300
>>> _+100
400
四、关键字
help("keywords") # 使用help("keywords")查看关键字信息
Python中的关键字(保留字)如下:
False | class | from | or |
---|---|---|---|
None | continue | global | pass |
True | def | if | raise |
and | del | import | return |
as | elif | in | try |
assert | else | is | while |
async | except | lambda | with |
await | finally | nonlocal | yield |
break | for | not |
五、常量、变量和对象
常量
常量指在程序的执行过程中不变的量。
变量
指向对象的值的名称就是变量。变量是一个标识符,通过等号(=)赋值运算创建,变量指向一个对象。
a = 10
创建了整型对象10、变量a,并使变量a连接到对象5,也称变量a引用了对象10或a是对象10的一个引用
>>> a = 100
>>> b = 100
>>> c = b
>>> id(100) # 输出140704027799280
>>> id(a) # 输出140704027799280
>>> id(b) # 输出140704027799280
>>> id(c) # 输出140704027799280
>>> d = 111
>>> id(d) # 输出140704027799632
>>> d = 100
>>> id(d) # 输出140704027799280
赋值运算可使用“连等”a = b = 1+2
- Python中使用变量不需要声明;
- 可以随时赋不同类型的值;
- 可以使用一个等号为多个变量赋值;
>>> a = 123 # a此时表示整数123
>>> a = "abcdefg" # a此时表示字符串"abcdefg"
>>> x, y, z = 1, 'H', "hello"
对象
Python中,一切皆对象。对象是某个类型事物的一个具体的实例,Python中的每一个对象都有一个唯一的身份标识(Identity,简称id)。对象的id是一个整数,一旦创建就不再改变,使用id()
函数获取id标识。type()
函数返回对象的类型,对象的类型也是不能改变的。
六、数据类型
数字类型
1. 整数类型(int):取值范围是无限的,至于机器的内存有关。
注意:在32位机器上,int的范围是-231 ~ 231-1
十六进制:0x22(数字0加大写或小写字母x)
八进制:0O22(数字0加大写或小写字母o)
二进制:0B1100(数字0加大写或小写字母b)
2. 浮点型(float):用于表示实数,如:3.14,-5.511。每个浮点数占8个字节,表示范围是-1.8308 ~ +1.8308。
科学计数法表示法:1.2E5表示1.2*105(E大小写均可)
3. 复数类型:如:4+5j、8-3j等。
一个复数至少要有虚部,1j、-1j、0j、0.0j都是复数,而0.0不是。表示虚部的实数是1也要写,直接写j是正确的。
4. 布尔型:用于表示逻辑判断的结果,True和False。
序列类型
序列类型表示的是若干有序的数据,分不可变序列类型和可变序列类型。
不可变序列类型的数据一旦写定,其中的数据就不能再改变。有字符串、元组和字节序列。
可变序列类型的数据内容可以更改。有列表、字节数组等。
1. 字符串(str):表示Unicode字符序列。写在一对单引号、双引号或三单引号、三双引号之间,如:'abcd'
、"hello"
、'''python'''
、"""你好!"""
。
- 若内容中有单引号可以使用双引号,有双引号可以使用单引号。
a = ""He's name is Tom.""
- 三引号的内容可以分多行写,单引号和双引号都不行
b = """It's not who you are underneath,
it's what you do that defines you."""
print(b)
# 执行的结果如下:
It's not who you are underneath,
it's what you do that defines you.
2. 元组(tuple):写在一对圆括号中,用逗号隔开的一组数据称为一个元组。如:(1,2,3)
、('zhangsan','lisi','wangwu')
、(1,2,'name')
3. 字节(bytes):强调数据是一系列的字节,以“b”开头的字符串被认为是字节序列数据。如:b'believe'
可以把字符串转换为字节序列:
str = 'abcd字节序列'
print(str) # abcd字节序列
a = str.encode("utf-8") # 等同于a = bytes(str, "utf-8")
print(a) # b'abcd\xe5\xad\x97\xe8\x8a\x82\xe5\xba\x8f\xe5\x88\x97'
print(type(a)) # <class 'bytes'>
b = str.encode("gb2312")
print(b) # b'abcd\xd7\xd6\xbd\xda\xd0\xf2\xc1\xd0'
c = str.encode("gbk")
print(c) # b'abcd\xd7\xd6\xbd\xda\xd0\xf2\xc1\xd0'
d = str.encode("utf-16")
print(d) # b'\xff\xfea\x00b\x00c\x00d\x00W[\x82\x82\x8f^\x17R'
4. 列表(list):在一对方括号中的用逗号隔开的若干数据是一个列表。如:[1,2,3]
、['zhangsan','lisi','wangwu']
、[1,2,'name']
、[1,2,3,[1,2,3]]
5. 字节数组(bytearray):表示可修改的字节序列。bytes生成的字节序列是不可以修改的。
str = 'abcd字节序列'
a = bytearray(str, "utf-8") # bytearray是可修改的
print(a) # bytearray(b'abcd\xe5\xad\x97\xe8\x8a\x82\xe5\xba\x8f\xe5\x88\x97')
a[0] = 101 # 101是字符'e'的ASCII码
print(a) # bytearray(b'ebcd\xe5\xad\x97\xe8\x8a\x82\xe5\xba\x8f\xe5\x88\x97')
其他类型
1. 集合类型(set):写在一对大括号中的用逗号隔开的数据,如{1,2,3}
- 集合中的项目没有顺序,且不重复;
- 集合数据是可变的;
2. 字典类型:字典中的每一项数据包括两部分,一个是键,一个是值。如,{"name": "张三", "tel": 123}