一.数据基础类型
1、整数
- 例如:1,100,-1,-100 或者使用十六进制表示 0xff00,0xa5b4c3d2...;
2、浮点数
- 带有小数点的统称为小数;
3、字符串
- 用‘’或“”括起来的任意文本,如‘abc’,“def”,表示方法不同结果相同;
4、布尔值
- 布尔值只有两种False、Ture;
- 通过and、or 、not运算获得布尔值;
- 其中 0,空字符串''和None看成False,其他数值和非空字符串都看成Ture;
- 例子:
a = True print a and 'a=T' or 'a=F'
结果是 a=T;原因涉及到and和or的运算的一条法则:短路计算,A、在计算 a and b 时,如果a是False,则根据与运算法则,整个结果必定是False,因此返回a;如果是Ture,则整个计算结果必定取决与b,因此返回b。B、在计算 a or b 时, 如果a是Ture,则根据或运算法则,整个计算结果必定为Ture,因此返回a;如果a是False,则整个计算结果必定取决与b,因此返回b。
5、空值
- 空值用None代表,0不是空值,0有意义而None没有;
二、python注释
1、#注释:#开头后面的都是注释内容;
2、""" """或''' ''':多行注释,凡是被单或双引号包起来都为注释内容
三、变量
a_007 = 123
1、在python中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)组合,且不能用数字开头;
2、‘=’ 赋值语句,可以把任意数据类型复制给变量,同一个变量可以反复复制,而且可以是不同类型的变量,不同于数学中的等号,;
3、变量的指向
a = 'ABC' b = a a = 'XYZ' print(b) # ABC
四、转义
- 换行
- 一个制表符(缩进)
- \表示
- 表示
- 转义本身.
- r‘’ 防止转义
五、编码问题
- py2 如果存在中文需要 需要在表头
#-*- coding: utf-8 -*-
- py3不存在这个问题
六、四则运算
- +
- -
- *
- /
- % 取余数
- 加减乘除以及括号的运算顺序和数学完全一致;
- 与数学不同的是python整数运算结果仍是整数小数点后面舍弃,浮点数运算结果仍是浮点数;
七、python内置数据
A、列表(list)
a.1、特性
- list是一种有序的集合,可以随时添加和删除其中的元素;
- list是有序的集合;
- list可以包含多种元素;
a.2 切片
a = ['a','b','c','d'] a[0] # a 第一个值 a[-1] # d 最后一个值 a[:2] # a,b 前两个值 a[2:] # c,d 后两个
a.3列表的方法
- append():在list尾部追加一个元素;
x = ['a','b','c','d'] x.append('c') print(x) # ['a', 'b', 'c', 'd', 'c']
- insert():指定位置插入元素;
x = ['a','b','c','d'] x.insert(0,'A') print(x) # ['A', 'a', 'b', 'c', 'd']
- pop():指定删除,返回值就是产出的值,参数默认则删除末尾元素;
x = ['a','b','c','d'] y = x.pop(0) print(x,y) # ['b', 'c', 'd'] a
- 切片替换
x = ['a','b','c'] x[0] = 'c' x[-1] = 'a' print(x) # ['c', 'b', 'a']
B、元组(tuple)
b.1特征
- tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
b.2切片
- 与list一模一样
b.3元组单元素的坑
- 当元组内有且只有一个元组的时候,要在元素末尾加上,号;
a = (1) print(a) #1 a = (1,) print(a) #(1,)
b.4可变的我
当元组内元素是list或dict时,可以对list或dict的元素进行修改
a = ('a', 'b', ['A', 'B']) a[2][0] = 'a' a[2][1] = 'b' print(a) #('a', 'b', ['a', 'b'])
C、字典(dict)
c1、特征
- dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
- 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
- 一个key对应一个value,a = {'coob' : 68, 'mary':90};
- 字典是无序的,没有切片的功能,但可以通过a[key]方式超找与更新值;
c2、获取字典的值
get()
a = { 'a':1, 'b':2, 'c':3 } print(a.get('e')) #没有对应的值时 返回None print(a['e']) # 没有对应的key时报错
a[key] 也可以获取值
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } a = d['Lisa'] print(a) # 85
for循环
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } for k,v in d.items(): print(k+':',v)
c3、更新key的值
d[key] = new_value
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } d['Lisa']=55 print(d) #{'Adam': 95, 'Lisa': 55, 'Bart': 59}
D、set
d.1、特性
- 确定性,唯一性,无序性; a = { 'a','b','c'}
- 元素必须是不变对象;
d.2、获取元素
for循环和list一样
d.3、set方法
add() 添加一个元素
s = {1,2,3} s.add(4) print(s) #{1, 2, 3, 4}
remove()删除
s = {1,2,3,4} s.remove(4) print(s) #{1, 2, 3}
八、语法
A、if
- if...else...
- if...elif...elif...else
B、for
循环的对象是可迭代的对象
L = ['a', 'b', 'c'] for name in L: print(name) #分别依次打印 a b c
C、while
基本用法:
和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。
N = 10 x = 0 while x < N: print(x) x = x + 1 #分别打印1~9
while循环每次先判断 x < N,如果为True,则执行循环体的代码块,否则,退出循环。
D、break内部中断用法:
# 计算1至100整数的和 sum = 0 x = 1 while True: sum = sum + x x = x + 1 if x > 100: break print(sum)
E、continue跳过后续代码
# 计算100以内的奇数和 sum = 0 x = 1 while True: if not x%2==0: sum += x x = x + 1 if x > 100: break print(sum)