一、资料
二、简介
# 安装
brew install python3
python --version
# 进入交互模式
python
# 退出交互模式
exit()
# 输入
input()
# 输出
print()
# 运行py文件
python hello.py
三、语法
1、基础
1、Python使用缩进来组织代码块
2、Python大小写敏感
3、#开头的语句是注释
2、变量
1、在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
2、这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言
3、常量
1、在Python中通常用全部大写的变量名表示常量
2、常量就是不能变的变量
3、Python根本没有任何机制保证PI不会被改变
4、条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
5、循环
# for...in
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
# while
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
6、函数
1定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回
def my_abs(x):
if x >= 0:
return x
else:
return -x
2、如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。return None可以简写为return
3、函数可以同时返回多个值,但其实就是一个tuple
四、数据类型
1、整数
# 绝对值
abs()
# 最大值
max()
2、浮点数
3、布尔值
1、布尔值只有True、False两种值
2、布尔值可以用and、or和not运算
4、空值
1、空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
5、字符串
1、对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
# bytes
# 1、Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes
# 2、Python对bytes类型的数据用带b前缀的单引号或双引号表示
x = b'ABC'
# 3、以Unicode表示的str通过encode()方法可以编码为指定的bytes
'中文'.encode('utf-8')
# 4、要把bytes变为str,就需要用decode()方法
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
# 5、len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数
len(b'ABC')
# int()函数把str转换成整数
int(str)
# 替换字符
a = 'abc'
b = a.replace('a', 'A')
6、类型转换
int('123')
int(12.34)
float('12.34')
str(1.23)
str(100)
bool(1)
bool('')
# 类型检查
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
7、list(数组)
1、list特点:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
classmates = ['Michael', 'Bob', 'Tracy']
# len()函数可以获得list元素的个数
print(len(classmates))
# 用索引来访问list中每一个位置的元素,索引是从0开始的
classmates[0]
# 如果要取最后一个元素,可以用-1做索引,直接获取最后一个元素
classmates[-1]
# 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
classmates[1] = 'Sarah'
# 往list中追加元素到末尾
classmates.append('Adam')
# 把元素插入到指定的位置,比如索引号为1的位置
classmates.insert(1, 'Jack')
# 要删除list末尾的元素,用pop()方法
classmates.pop()
# 要删除指定位置的元素,用pop(i)方法,其中i是索引位置
classmates.pop(1)
# range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
list(range(5))
#
sort()
8、tuple(元组)
定义tuple的时候,tuple的元素就必须被确定下来,tuple一旦初始化就不能修改
classmates = ('Michael', 'Bob', 'Tracy')
9、dict(字典)
1、dict有以下特点:
查找和插入的速度极快,不会随着key的增加而变慢
需要占用大量的内存,内存浪费多
2、dict的key必须是不可变对象
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael']
# 如果key不存在,dict就会报错
# 通过in判断key是否存在
'Thomas' in d
# 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
d.get('Thomas')
d.get('Thomas', -1)
# 删除一个key,用pop(key)方法,对应的value也会从dict中删除
d.pop('Bob')
10、set(集合)
1、set和dict类似,也是一组key的集合,但不存储value
2、set中,没有重复的key
# 创建一个set,需要提供一个list作为输入集合
s = set([1, 2, 3])
# 添加元素到set中,可以重复添加,但不会有效果
add(key)
# 删除元素
remove(key)
# 两个set可以做数学意义上的交集、并集等操作
s1 & s2
s1 | s2