日常语法
简介
Python是强类型动态脚本语言,是一门非常流行的编程语言,它具有简单易学、易读、易扩展、易维护等特性,并且拥有丰富的第三方库支持。
python中一切皆对象。对象包括:标识(identity)[id()]、类型(type)[type()]、值(value)[print(x,end='')]。
变量定义
声明变量没有赋值,print(a)会报错:NameError: name 'a' is not defined
python
a = 1; # 变量名 = 变量值
b = 'abc'
c = 55.41
d = None
关键词
- continue 跳过当前循环,继续下一次循环
- break 跳出循环
数据类型
基本类型 | 明细 | 高级类型 | 明细 |
---|---|---|---|
Number | Integer | Tuple | 内部元素不可修改(元组) |
Number | Long integer | List | 内部元素可修改(列表)[可变类型] |
Number | Double-precision floating | Set | 无序[可变类型] |
Number | Complex number | Dictionary | 键值对 |
Boolean | True/False | ||
String | 零个或者多个字符组成的有限序列 |
类型转换
数据类型 | 描述 | 样例 |
---|---|---|
int() | 转换为整数 | |
long() | 转换为长整数 | |
float() | 转换为浮点数 | |
complex() | 创建一个复数 | |
str() | 转换为字符串 | |
repr() | 将对象转换为表达式字符串 | |
eval() | 执行一个字符串表达式 | |
tuple() | 转换为元组 | a = 1,2 b = (1,2) c = (1,) d = () e = tuple("abc") f = tuple(range(3)) g = tuple((1,2)) h = zip(a,b) |
list() | 转换为列表 | list=[] range(1,5,2) a=[x*1 for x in range(1,5)] a= [10] a.append(20) a=[10] b=[20] c = a+b = [10,20] d = a.extend(b) [性能比a+b高] a.insert(索引位,插入值) del a[索引位] a.pop(索引位) |
set() | 转换为集合 | a = {1,2,4} b = {'a','b','c'} c = {3,4,True,'ab',56.4} a = ['a','b','c'] b = set(a) |
dict() | 转换为字典 | a = {'name':'locke'} b = dict(name='locke') c = dict([('name','locke'),('age','18')]) d = {} e = dict() f = dict.fromkeys(['name','age']) |
forzenset() | 转换为不可变集合 | |
chr() | 将一个整数转换为字符 | |
unichr() | 将一个整数转换为Unicode字符 | |
ord() | 将一个字符转换为整数 | |
hex() | 将一个整数转换为十六进制字符串 | |
oct() | 将一个整数转换为八进制字符串 |
python
a = 10
b = 20
eavl("a+b") 执行表达式 = 30
'#'*10 = ##########
a = [1]
a*3 = [1,1,1]
sort(a,key = lambda x:-x) # 倒叙 lambda匿名函数
# 解包
x,y,z = (1,2,3)
[a,b] = [1,2]
# 字典
for i,key in enumerate(c) # 打印 下标,key值,value值
print(i,key,c[key])
a = [1,2,3]
b = ['a','b','c']
dict(zip(b,a)) # 输出 {'c':3,'a':1,'b':2}
# set
a|b # 并集
a&b # 交集
a-b # 差集
语法说明
作用域:根据缩进层级来判断,缩进为4个空格,缩进层级相同,为同一作用域。
条件判断
单分支
python
if 条件表达式:
语句/语句块
多分支
python
if 条件表达式1:
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
else:
语句3/语句块3
三元条件运算符
python
x = a if 条件表达式 else b # true情况返回a,false情况返回b
循环
while循环
python
while 条件表达式: # 注意条件表达式跳出逻辑
语句/语句块
else: # 可选, 循环正常结束执行
语句/语句块
for循环
range(4) => [0,1,2,3] 左闭区间右开区间
python
for 变量 in 迭代对象: # 迭代对象可以是列表、元组、字典、字符串等
语句/语句块
例子:
for i in range(4):
print(i)
递归
经典算法:阶乘、斐波那契数列
python
def fun(a,b):
if len(a)==2:
return a[0]+a[1]+b
return fun(a[:-1],a[-1])+b
fun(a[:-1],a[-1])
切片
应用:字符串、列表、元组等
python
列表[start:end:step] # start:起始偏移量 end:终止偏移量 step:步长
样例:
下标为正数: 左侧开始计数,下标从0开始,左闭右开区间
[1,2,3][:] 获取全量数据 [1,2,3]
[1,2,3][1:] 从下标1开始获取 [2,3]
[1,2,3][:2] 从头开始获取2(end)-1数据 [1,2]
[1,2,3,4,5,6,7][1:6:2] 获取下标1-6(end)-1,步长为2的数据 [2,4,6]
下标为负数: 右侧开始计数,从1开始,下标为数量
[1,2,3][-1:] 从下标-1开始获取 [3]
[1,2,3][::-1] 倒叙 [3,2,1]