mac 安装python3

brew install python3

安装完成后:命令python3就是使用python3.x版本,python就是使用python 2.x版本。也可以直接使用命令IDLE

数据类型

整数/浮点数/字符串/布尔值/空值 变量/常量

字符串:

如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

>>> print("i'm ok")
i'm ok

为了简化,Python还允许用r”表示”内部的字符串默认不转义:

>>> print('i \'m')
i 'm
>>> print(r'i \'m')
i \'m

多行内容:

>>> print(''' line1
... line2
... line3
... ''');
 line1
line2
line3

BOOL

在Python中,可以直接用TrueFalse表示布尔值.

>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False

布尔值可以用and(与)、or(或)和not(非)运算。

>>> not True
False
>>> not False
True
>>> not 1 > 2
True

空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

变量

变量名必须是大小写英文、数字和_的组合,且不能用数字开头。

a = 'ABCDEFG'

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.1415926

但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

最后解释一下整数的除法为什么也是精确的。在Python中,有两种除法,一种除法是/:

>>> 10 / 3
3.3333333333333335

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 3
3.0

list

list是Python内置的列表.

len()函数可以获取list元素的个数。

myList[n]:可以访问对应下标的元素,需要注意不要越界。

mylist[-1]: 下标为-1时,可以获取到最后一个元素。

mylist.appned(xx):使用append()添加元素。

mylist.insert(1,'jack'):使用insert插入元素到指定的位置。

mylist.pop():删除末尾元素

mylist.pop(i):删除指定索引位置的元素

mylist[i] = 'Sara':某个元素替换成别的元素,可以直接赋值给索引位置

L = ['Apple',123, True, [1,2,3]]:数组元素类型可以不同

>>> classmates = ['a','b','c']
>>> classmates
['a', 'b', 'c']
>>> len(classmates)
3
>>> classmates[0]
'a'
>>> classmates[-1]
'c'

tuple

元组一旦初始化就不能修改

>>> cs = ('Mic','Bob', 'Tyc')
>>> cs2 = (1,) #声明一个元素的元组

“可变”的一种情况:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

条件

if

age = 20 
if age > 10 
    print('xx')
else age > 100
    print('vv')    
else: 
    print('ss')    

循环

for in

names  = ['name',2,3]
for name in names:
	print(name)	

range()函数可以生成队列

>>> list(range(5))
[0, 1, 2, 3, 4]

while

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

使用dict和set

dict 字典

dict是无序的。

和list比较,dict有以下几个特点:

dict 查找和插入的速度极快,不会随着key的增加而变慢; 需要占用大量的内存,内存浪费多。

而list相反: 查找和插入的时间随着元素的增加而增加; 占用空间小,浪费内存很少。

初始化:

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

存放(覆盖):

>>> d['Adam'] = 67
>>> d['Adam']
67

如果key不存在,dict就会报错。判断key是否存在:

使用in: 'ss' in d 会返回布尔值。

使用get:

如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas') #返回None的时候Python的交互环境不显示结果。
>>> d.get('Thomas', -1)
-1

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

#重复元素在set中自动被过滤:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

函数

系统内置的函数:

name 举例
abs 绝对值 abs(-20)得到20
max max(1,2) max(2,3,4,-1)

数据类型转换: int('123')float(12.23)bool(1)

定义函数

使用def语句

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

print(my_abs(-99))