python3个人学习笔记——基础

该笔记仅作为个人学习笔记,也算是一个基础的分享吧

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 元组

元组是不可变类型的列表,只有countindex两种函数

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值