1.变量
无需申明变量类型,直接 变量名 = 值
整数 : a = 123
字符串: str = "abc" , 或者str = 'abc'
字符串转义 \n \r , 禁止转义 r'\n\r\abc'
换行 print(
''' line1
line2
line3
....
''' )
2 字符串
ord()
: 获取字符串的整数(Unicode码)表示 ,ord('A') = 65
.encode()
: 获取字符串编码结果,'中文'.encode('utf-8')获取“中文“的utf-8 编码结果
.decode()
: 解码b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8' , errors='ignore') = "中文" , errors='ignore' 忽略错误
len()
: 计算字符串长度 , len('ABC') = 3
replace()
: 替换 Abc.replace('A' , 'a') = abc;
==
字符串比较直接用 == , <= , >= ...
.format()
: 格式化1 "小明成绩{}分,上涨了{}%".format(90 , 10) ;
% :格式化2 "小明成绩%s分,上涨了%s %%" %(90 , 10) ; 这里两个%%前一个是转义
3.集合数据结构
list
: 列表
names = ['zhangsan' , '李四' , ‘傻子’] ;
len(names)
3
names[0]
zhangsan
names[-1] #最后一个元素
傻子
names[-2] #倒数第二个元素
李四
names.append('wangwu') ###添加一个元素
names
['zhangsan' , '李四' , ‘傻子’ , 'wangwu']
names.insert(2,'zhao_liu') #添加一个索引2 的元素zhao_liu
names
['zhangsan' , '李四' ,'zhao_liu' , ‘傻子’ , 'wangwu']
names.pop() 弹出(删除)最后一个元素
name.pop(3) 弹出(删除)索引为3最后一个元素
tuple
: 可理解为不可变list
t = (1 ,2)
t
(1,2)
t =(1,) # 定义一个元素的tuple需要在后面加一个逗号
t
(1,)
dict
:字典 , 对应其他语言的map
scores = ['zhangsan' : 50 , '李四' :60 ,'傻子' :0 ]
scores['zhangsan'] #没有找到对应key 报错
50
scores.get('zhangsan') #没有找到对应key 返回None
50
scores.pop('zhangsan') : #删除zhangsan
'zhangsan' in scores #是否存在KEY
False
scores['张三'] = 100 # 添加key
set
集合
s = set([1, 2, 3])
{1,2,3}
s = set([1, 1, 2, 2, 3, 3])
{1,2,3} #元素不可重复
s.add(4) #add 添加元素
s.remove(4) #remove 移除元素
s1 & s2 #s1 和s2 的交集
s1 | s2 #s1 和 s2 的并集
4.if条件判断
if 条件1 :
代码块1
elif 条件2
代码块2
else:
代码块
python 使用的是缩进规则, 不像其他大部分语言用{}花括号将执行的代码块包围 , 可以认为:后面缩进的代码块就是被{}花括号包起来的代码块 。
5.循环
for..in..循环
: 类似java 的 foreach 循环 , 不过python 的 in 后面可以是很多类型(迭代器)
nams = ['zhangsan' , '李四' ,'wangwu']
for name in names
print(name) ;
for i in range(101)
sum = sum + x ;
print(sum) ;
while循环
while 条件:
循环体
break
:跳出循环
continue
跳过本次循环接下来的逻辑,继续下次循环
6.函数
help(abs)
: 交互命令下可用help(函数名)查询函数的帮助信息
常用内置函数
:abs() 求绝对值 ,max(1,4,6) 求最大值 ,min(2,3,1)求最小值
int("232")强转int , float("12.3")强转浮点,str("23")强转字符串,bool(1)强转boolean
定义函数
:python定义函数恐怕是最精简的的定义方式了, 无需定时返回类型,参数类型
语法
def voidName(x , y):
函数体
#如果需要在同文件夹下使用其他python文件中的函数
from 文件名 import 函数名
python 函数还有一个区别其他语言特殊的功能可以返回多个值
def manyVal(x, y):
return x+y , x-y ;
add,sub = manyVal(1,2);
print(manyVal(1,2)) ;
#(3,-1) #返回多个值其实就是返回一个tuple数据类型
函数参数
: python 的行参与java 语言也是区别比较大的
1.可以给参数设置默认值,这样当扩展函数的参数可以不修改原来的调用,java则需要靠重载实现
def void1(x , y = 2):
print("x=" , x , "y=", y) ;
void1(1) ;
x = 1 , y = 2
2.多个默认值, 指定参数值 , 如果有多个默认值, 想跳过中间某个值的设参,需要指定参数名
def void2(x, y= 2 , z= 7):
print("x=" , x , "y=", y , "z= " , z) ;
void2(1 , z=10);
x=1, y=2,z=10
3.多个参数 ,可以在参数前面加一个* ,类似java 的 参数后面加...
def void3(*x):
print("x===",x);
# 实际把参数封装成tuple , 类似java 将参数封装成数组
void3(1,2,3,5) ;
(1,2,3,5)
x = (1,3,4,5,3)
#如果要将集合类型的参数传给没个值 ,前面也加一个*
void3(*x);
(1,2,3,5)
4.扩展参数,可以传入函数体原来不存在的函数,将会把传入的值封装成dist
def void4(x , y , **z):
print("x = " ,x ,"y=",y , "z=",z)
# t 和 o 实际形参中并不存在 ,z 在这里变成一个dist(map) ,将t和o 装到sist 里面
void4(1 ,8 , t = 3 , o= 8) ;