该笔记仅作为个人学习笔记,也算是一个基础的分享吧
文章目录
1.基础数学算法
1.1 加减乘除
加减乘除:a+b a-b a*b a/b
保留小数:10÷3保留4位小数
round(10/3,4)
输出结果 : 3.3333
取余:10 % 3
输出结果 : 1
取商和余数:divmod(10,3)
输出结果 : (3, 1)
1.2 乘方、开方
乘方:2的3次方:23
2 ** 3
或者 math.pow(2,3)
输出结果 : 8
开方:8的开三次方:81/3
8 ** (1/3)
或者 math.pow(8,1/3)
输出结果 : 2
一般使用前者,因为后者书写较麻烦,而且需要引入py的math模块
1.3 取整数
向下取整数:
math.floor(9.555)
输出结果 : 9
向上取整数:
math.ceil(9.555)
输出结果 : 10
1.4 数值与π之间的转换
180°转换为数值
math.radians(180)
输出结果 : 3.141592653589793
1.5 三角函数
sin45°
math.sin(math.pi/2)
输出结果 : 1
1.6 a、b、c数值互换
a=10
b=15
c=20
a,b,c = b,c,a
print("a is {},b is {},c is {}".format(a,b,c))
输出结果 : a is 15,b is 20,c is 10
1.7 取最大/小值
最大值:min(100,26,287,48)
输出结果 : 26
最小值: max(100,26,287,48)
输出结果 : 287
2 切片
以下以 line = 'pythone 学习笔记'
为例
2.1 取某一部分的字符
取前十字符:line[0:10]
输出结果 : pythone 学习
取后十字符:line[-10:]
输出结果 : thone 学习笔记
每隔一个字符取一个字符:line[0:10:2]
输出结果 : ptoe学
翻转字符:line[::-1]
输出结果 : 记笔习学 enohtyp
3 字符串常用函数
以下以 line = 'pythone pythone'
为例
首字母大写,其余小写:line.capitalize()
输出结果 : Pythone pythone
全部大写:line.upper()
输出结果 : PYTHONE PYTHONE
全部小写:line.lower()
输出结果 : pythone pythone
居中:line.center(20)
20代表的是一共有20个字符
输出结果 : pythone pythone
计数函数:line.count('y')
计算y这个字符出现了多少次
输出结果 : 2
字符串首尾判断:
首字符判断:line.startswith('ab')
输出结果 : False
尾字符判断:line.endswith('one')
输出结果 : True
待定:``
输出结果 :
4 列表
列表常用的一些函数,定义一个列表varibals=[1,2,3]
添加:varibals.append()
清空:varibals.clear()
复制:new_varibals = varibals.copy()
为什么要使用copy而不是直接等于呢,“=”的话以后无论对new_varibals 还是varibals 做改变,另外一个也会随之改变
ab列表拼接:varibals.extend(b)
将列表b拼接到(添加到)列表a中
插入:varibals.insert(0,5)
在第0的位置插入5
弹出、移除某一个位置的值:varibals.pop(-1)
弹出最后一个
弹出、移除第一个某一个值:varibals.remove(2)
移除列表中第一个数值为2的值
排序:
从小到大:varibals.sort()
从大到小:varibals.sort(reverse=True)
5 元组
元组是不可变类型的列表,只有count
和index
两种函数
6 字典
6.1 拉链函数zip
将多个列表组合成字典
count = [100,200]
position = ['上','下']
test = list(zip (position,count))
dict(test)
输出结果 : {‘上’: 100, ‘下’: 200}
6.2 赋初始值
students = ['zhao','qian','sun','li']
dict.fromkeys(students,10)
输出结果 : {‘zhao’: 10, ‘qian’: 10, ‘sun’: 10, ‘li’: 10}
6.3 访问字典中的值
根据上面6.2的结果继续输出
data = dict.fromkeys(students,10)
data['zhao'] 或者是 data.get('zhao')
输出结果 : 10
data.get
不同的是,如果在字典中没有查到该值,可以直接赋予值,例如data.get('zhou',20)
,但是这不代表在data中添加了这个‘zhou’
输出结果 : 20
6.4 字典还原列表
data.keys()
输出结果 : dict_keys([‘zhao’, ‘qian’, ‘sun’, ‘li’])
data.values()
输出结果 : dict_values([10, 10, 10, 10])
data.items()
输出结果 : dict_items([(‘zhao’, 10), (‘qian’, 10), (‘sun’, 10), (‘li’, 10)])
6.5 删除某个值
data.pop('zhao')
这样data中就没有“zhao”这个值了
6.6 添加某个值
data['zhou']=20
这样就是在data最后添加一个zhou:20
data.setdefault('wu',100)
这个就是如果data中有’wu’,返回的则是原本的wu对应的值,如果没有,则新添加一个‘wu’,对应的值为100
7 条件判断
7.1 if语句
count =50
if count > 40:
if count > 50:
print('a')
else:
print('b')
elif count>30:
print('c')
else:
print('d')
输出结果 :
count>50,则输出a;
50≥count>40,则输出b;
40≥count>30,则输出c;
count≤30,则输出d;
7.2 and or not
布尔型
a = True
b = False
print('a and b is {}'.format(a and b))
print('a or b is {}'.format(a or b))
print('not a is {}'.format(not a))
输出结果 :
a and b is False
a or b is True
not a is False
非布尔型
a = 'nihao'
b = [1,2,3,4]
print('a and b is {}'.format(a and b))
print('a or b is {}'.format(a or b))
print('not a is {}'.format(not a))
输出结果 :
a and b is [1, 2, 3, 4]
a or b is nihao
not a is False
首先上面的a和b都是存在数据的,也就是True的状态。
在纯and语句中,如果a和b都为True,则返回最后一个值,如果其中有一个为假,则返回假;
在or语句中,只要有一个值为真,则返回这个值。如果or左边的值为真,则返回左边的值,反之则继续判断or右边的值,依次类推
7.3 断言
data = 10
assert data == 10,'"错误信息"'
如果data不等于10,则输出“错误信息”
8 循环
8.1 for循环——遍历循环
data =[60,70,80,90]
for grade in data:
print ('得分为{}'.format(grade))
输出结果 :
得分为60
得分为70
得分为80
得分为90
8.2 while循环——条件循环
data = []
while len(data)<5:
data.append(1)
print(data)
输出结果 :[1, 1, 1, 1, 1]
8.3 for循环构建推导式
列表推导式
random_number = list(range(10))
random_number
new_number = [number*10 for number in random_number]
new_number
输出结果
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
字典推导式
random_number = list(range(10))
dict_number = {number:'A' for number in random_number}
dict_number
输出结果
{0: ‘A’,
1: ‘A’,
2: ‘A’,
3: ‘A’,
4: ‘A’,
5: ‘A’,
6: ‘A’,
7: ‘A’,
8: ‘A’,
9: ‘A’}
9 函数
varibal = {
'a':100,
'b':200,
'c':300
}
def function(dict,value):
return [ k for k ,value in dict.items() if value == 100]
function(varibal,100)
输出结果:[‘a’]
位置参数:以上为例,function(varibal,100)
这种varibal与dict、100与value一一对应的,叫做位置参数
关键字参数:function(dict=varibal,value=100)
这种把dict和value的值都写出来,叫做关键词参数
装饰器
例子:保留2位有效数字
实现思路:
1.先写一个随机取值0-1的方法
# 引入random
import random
def test():
return random.random()
2.然后写一个decorator,返回值写wrapper。里面写一个wrapper方法,返回值取2位有效数字
def decorator(func):
def wrapper(*args,**kwargs):
return round(func(*args,**kwargs),2)
return wrapper
3.再def test()前面加上@decorator
,然后依次运行1和2,在运行test()
输出结果:0.51
9.类
创建一个People类
class People:
def __init__(self,name,age):
self._name = name
self._age = age
def get_name(self):
return self._name
def rename(self,newname):
self._name = newname
使用方法
p = People('zhao',15)
p.get_name() //获取p的name
p.rename('qian') //重置p的name