【python快速入门】—唐宇迪课程笔记
1.python数值计算
注意type()——查看变量类型
类型转换
tang2 = int(tang)
type(int(tang))
int
tang_str = 'tang'
type(tang_str)str
tang_str = '123'
type(tang_str)strfloat(tang_str)123.0
只有字符串内容是数值时,才能转换为float。
转换为字符串使用str()。
计算先后顺序
- ()
- [**]
- */
- ±
基本数值操作
已经定义好的函数:
abs()—取绝对值;round()—四舍五入取整;min()/max()—最小/大值(逗号分隔);科学计数法—e相当于10 的几次幂(eg:1.3e5==130000.0)
;16进制—0xFF==255
布尔类型(bool)
可以连续比较
tang = 3
1<tang <5True
2.python字符串
用+号—连接字符串(注意结果无空格)
用*号—重复(注意结果无空格)
用len()—得出字符串大小
字符串操作
假设tang = ‘1 2 3 4 5’
切分:tang.split()—[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
tang = tang.split(‘,’)—[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
合并:与tang_str = ’ '合并
tang_str.join(tang)—‘1 2 3 4 5’
替换:tang = ‘hello python’
tang.replace(‘python’,‘world’)—‘hello world’
注意此时:tang—‘hello python’,如果要替换后结果可以定义新变量 tang2 = tang.replace(‘python’,‘world’)
大写:tang2.upper()
小写:tang2.lower()
去掉空格:tang.strip()
去掉左边空格:tang.lstrip()
去掉右边空格:tang.rstrip()
打印字符串,可以使用.format()传参
‘{} {} {}’.format(‘t’,‘y’,‘i’)—‘t y i’
定义顺序—‘{2} {1} {0}’.format(‘t’,‘y’,‘i’)—‘i y t’
指定参数—‘{t} {y} {i}’.format(t = 10, y =5, i = 1)—‘10 5 1’
使用%方式:
tang = 't y i:'
b = 456.0
c = 789
result = '%s %f %d' % (tang,b,c) 't y i: 456.000000 789'
3.python索引
索引—注意索引不能越界
- 从前面是0开始
- 从后面是-1开始
tang = ‘tang yu di’
tang[0]—‘t’;tang[-1]—‘i’;tang[-5]—‘y’
切片:(:表示从哪到哪 左闭右开的区间)
tang[0:4]—‘tang’(4是空格,开区间不取);tang[5:]—‘yu di’;tang[-3:]—’ di’
全部:tang[:]—‘tang yu di’
隔几个:tang[::2]—‘tn ud’
4.python List结构
列表
- 通过[]来创建一个list结构
- 里面放任何类型都可以的,没有一个长度限制
tang = [1,‘tangyudi’,3.5];tang = list([1,2,3])
list操作
假设a = [123,456] b = [‘tang’,‘yudi’]
+:a + b—[123, 456, ‘tang’, ‘yudi’]
*:a * 3—[123, 456, 123, 456, 123, 456]
更改:a[0] = 789 a—[789, 456];a[:] = [‘tang’,‘yudi’] a—[‘tang’, ‘yudi’]
求长度:len()
假设 a = [1,2,3,4,5,6,7,8,9]
删除:del a[0] a—[2, 3, 4, 5, 6, 7, 8, 9];del a[3:] a—[2, 3, 4]
判断列表是否存在某元素:8 in a—True
list中也可以添加list(任何类型):a = [1,2,[3,4]];a[2][1]—4
记数:.count()—判断列表中某元素有多少个
求索引:.index()—得出某元素的索引
列表添加
添加:.append()依次添加
插入:.insert(索引,元素)
移除:.remove(某元素)若元素有多个重复,从索引低的开始移除
弹出:.pop(索引)
排序:.sort()改变原始list;不改变原始list:t2=sorted(t);
倒序:.reverse()
5.python 字典
字典结构
定义:tang = {};tang = dict()
字典结构操作 key-value 没有先后顺序
tang[key] = value;
查找:tang[key];用key值索引
字典里可以嵌套字典:
tang = {}
d1 = {'tang':123,'yudi':456}
d2 = {'tang2':456,'yudi2':789}
tang['test1'] = d1
tang['test2'] = d2
tang{'test1': {'tang': 123, 'yudi': 456}, 'test2': {'tang2': 456, 'yudi2': 789}}
tang = dict([(‘tang’,123),(‘yudi’,456)])—{‘tang’: 123, ‘yudi’: 456}
改变value值:tang[‘tang’] += 1—{‘tang’: 124, ‘yudi’: 456}
get方法:tang.get(‘fengzi’,‘meiyou’)—‘meiyou’
弹出:tang.pop(‘tang’)—124
删除:del tang[‘yudi’] tang—{}
更新:旧字典.update(新字典)
判断字典中是否存在某key—key in 字典—true/false
调用key集—tang.keys()
调用value集—tang.values()
调用全部—tang.items()
6.python 集合—唯一性
会保留下来唯一的那些元素
tang = set([123,123,123,456,456,456,789]) tang—{123, 456, 789}
集合操作
a,b调换顺序无影响
并集:a.union(b) ;a|b
交集:a.intersection(b);a&b
a,b调换顺序结果不一样
差集:a.difference(b);a - b;b-a
包含:b.issubset(a)—a包含b?;b <= a;b > a
添加元素:a.add(4);
更改集合:a.update([4,5,6])—增添没有的元素
删除元素:a.remove(1)
弹出元素:a.pop()—按照顺序(从头开始)
7.赋值机制
t = 1000
y = t
id(t)
2683811812688
id(y)
2683811812688
t is y
True
y = 123456
id(y)
2683811812976
t is y
False
并且,在python中,如果定义两个较大的数(数值相同),分配两个不同的单元,小数值则分配到同一单元。—提高内存运行效率。
8.python—判断结构
t = 50
if t >200:print ('200')
elif t < 100:print ('100')
else:print ('100-200')100
注意:缩进
tang = {'t':123,'y':456}
if 't' in tang:print ('ok')ok
9.python—循环
while循环
t = 0
while t < 10:print (t)t += 1
0
1
2
3
4
5
6
7
8
9
ts = set(['tang','yu','di'])
while ts:t = ts.pop()print (t)
yu
tang
di
for循环
t = [123,435,1234,513245,11243,1234,1234,534,346]
for i in range(len(t)):print (t[i])
123
435
1234
513245
11243
1234
1234
534
346
tang = [10,11,12,13,14,15]
for i in tang:if i%2 == 0:print (i)else:continueprint (i)
10
10
12
12
14
14
10.python 函数
def add_ab(a,b):return (a+b)
tang = add_ab(3,5)
tang8
def add_number(a,*args):#接收不限个数的参数b = 0for i in args:a += ib += areturn a,b
a,b = add_number(1,2,3)
print (a,b)6 9
def add_number2(a,**kwargs):#参数只能是键值对(字典)for arg,value in kwargs.items():print (arg,value)
add_number2(1,x=2,y=3)x 2
y 3
11.python 包
脚本文件的执行
%%writefile tang.pytang_v = 10def tang_add(tang_list):tang_sum = 0for i in range(len(tang_list)):tang_sum += tang_list[i]return tang_sum
tang_list = [1,2,3,4,5]
print (tang_add(tang_list))Writing tang.py%run tang.py15
print (tang.tang_v)—10;
更改模块内变量:tang.tang_v = 100
调用:tang_list = [10,11,12] tang.tang_add(tang_list)—33
导入:import tang as tg 可以使用变量以及函数(tg.tang_v;tg.tang_add(tang_list))
—导入部分:from tang import tang_v,tang_add (tang_v;tang_add(tang_list))
—导入全部:from tang import * (tang_v;tang_add(tang_list))
12.异常处理模块
捕捉异常
try:
模块
except 错误名:
print(错误原因)
import mathfor i in range(10):try:input_number = input('write a number')if input_number[0] == 'q':breakresult = 1/math.log(float(input_number))#log a>0print (result)except ValueError:print ('ValueError: input must > 0')
write a number4
0.7213475204444817
write a number0
ValueError: input must > 0
write a numberq
import mathfor i in range(10):try:input_number = input('write a number')if input_number == 'q':breakresult = 1/math.log(float(input_number))#分母不为0print (result)except ValueError:print ('ValueError: input must > 0')except ZeroDivisionError:print ('log(value) must != 0')except Exception:print ('ubknow error')
write a number2
1.4426950408889634
write a number3
0.9102392266268373
write a number-1
ValueError: input must > 0
write a number1
log(value) must != 0
write a numberq
自定义异常
class TangError(ValueError):passcur_list = ['tang','yu','di']
while True:cur_input = input()#输入if cur_input not in cur_list:raise TangError('Invalid input: %s' %cur_input)#提出一个错误
tang
up
---------------------------------------------------------------------------
TangError Traceback (most recent call last)
<ipython-input-3-5fb5bf1bf40e> in <module>()6 cur_input = input()#输入7 if cur_input not in cur_list:
----> 8 raise TangError('Invalid input: %s' %cur_input)#提出一个错误TangError: Invalid input: up
关键字finally
无论try的模块中有无异常,最后都可以打印出finally命令行
try:1/0
except:print ('==0')
finally:print ('finally')==0
finally
使python程序遇到某些危险的情况时可以提前终止
13.文件操作
%%writefile tang.txt
hello python
打开:txt = open(‘./tang.txt’)
阅读:txt_read = txt.read()
单行读:lines = txt.readlines()
关闭:txt.close()
写:txt = open(‘tang_write.txt’,‘w’) ;txt.write(‘jin tian tian qi bu cuo’);txt.close() 注意‘w’模式会覆盖原文—‘a’是追加模式
注意:
写完之后必须关闭,未关闭可能没写上。
with open('tang_write.txt','w') as f:f.write('jin tian tian qi bu cuo')
with方法可以不加close()
14.类:面向对象
class people:'帮助信息:XXXXXX'#所有实力都会共享number = 100#构造函数,初始化的方法,当创建一个类的时候,首先会调用它def __init__(self,name,age):#初始化self.name = nameself.age = agedef display(self):print ('number = :',people.number)def display_name(self):print (self.name)
people.__doc__
'帮助信息:XXXXXX'
调用类
p1 = people('tdi',30)p2 = people('python','40')p2.name
'python'p1.display()
number = : 100
修改:p2.name = ‘hello’
删除:del p2.name
查看某个对象是否有某个属性:hasattr(p1,‘name’)—True
得到某个对象的某个属性:getattr(p1,‘name’)
设置某个对象的某个属性:setattr(p1,‘name’,‘yTang’)
删除某个对象的某个属性:delattr(p1,‘name’)
继承
class Parent: #定义父类number = 100def __init__(self):print ('调用父类构造函数')def parentM(self):print ('调用父类方法')def setAttr(self,attr):Parent.parentAttr = attrdef getAttr(self):print ('父类属性:',Parent.parentAttr)def newM(self):print ('父类要被重新的方法')class child(Parent): #定义子类def __init__(self):print ('调用子类构造函数')def childM(self):print ('调用子类方法')def newM(self):print ('子类给它改掉了')
c = child()
c.childM()
c.parentM()
c.setAttr(100)
c.getAttr()
c.newM()调用子类构造函数
调用子类方法
调用父类方法
父类属性: 100
子类给它改掉了
15.时间—import time
当前时间:print (time.time())—一般使用两个时间的差异值
易观察的当前时间:print (time.localtime(time.time()))
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=13, tm_hour=21, tm_min=21, tm_sec=21, tm_wday=2, tm_yday=103, tm_isdst=0)
格式化时间类型
print (time.asctime(time.localtime(time.time())))
Wed Apr 13 21:23:03 2022print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
2022-04-13 21:23:00
日历:
import calendar
print (calendar.month(2022,4))
#print (help(calendar.month))April 2022
Mo Tu We Th Fr Sa Su1 2 34 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
【python快速入门】—唐宇迪课程笔记相关推荐
- 唐宇迪Pytorch笔记(附课程资料)
目录 pytorch_tutorial 介绍 软件架构 安装教程 所需python包 使用说明 配套资料 { title = {pytorch深度学习实战}, author = {唐宇迪}, url ...
- 唐宇迪学习笔记1:Python环境安装、Pytho科学计算库——Numpy
目录 一.AI数据分析入门 1.案例来源 2.Python环境配置(Python3) Python的安装 Python库安装工具 Jupyter Notebook 二.Python科学计算库--Nu ...
- 唐宇迪学习笔记4:Python可视化库——Seaborn
目录 一.整体布局风格设置 五种主题风格 1.darkgrid 2.whitegrid 3.dark 4.white 5.ticks 二.风格细节设置 1.指定画图距离轴线的位置 2.指定轴的隐藏与否 ...
- 唐宇迪学习笔记3:Python数据可视化库——Matplotlib
目录 一.Matplotlib概述 最基本的图 线条格式 线条颜色 颜色与格式结合 二.子图与标注 绘制多个线 指定线条的宽度 自定义参数 子图 给图上加上注释 三.风格设置 四.条形图 五.条形图 ...
- 唐宇迪学习笔记20:聚类算法——DBSCAN
目录 一.DBSCAN聚类算法 (Density-Based Spatial Clustering of Applications with Noise) 二.DBSCAN工作流程 工作流程 参数选择 ...
- 唐宇迪学习笔记10:项目实战-交易数据异常检测
目录 一.任务目标解读 信用卡欺诈检测 任务流程: 主要解决问题: 二.项目挑战与解决方案制定 1.导入我们的工具包 2.数据读取 3.数据标签分布 三.数据标准化处理 四.下采样数据集制作 五.交叉 ...
- 唐宇迪学习笔记18:案例——SVM调参实例
目录 一.SVM案例:线性支持向量机 SVM:支持向量机 支持向量基本原理 例子 Support Vector Machines: 最小化 雷区 训练一个基本的SVM 对比实验 二.软间隔C值对结果的 ...
- 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记
唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...
- Python数据分析(统计分析)视频教程-唐宇迪-专题视频课程
Python数据分析(统计分析)视频教程-708人已学习 课程介绍 Python数据分析(统计分析)视频培训课程概述:Python统计分析系列课程以Python为核心工具,结合其工具包 ...
- 唐宇迪机器学习课程笔记:逻辑回归之信用卡检测任务
信用卡欺诈检测 基于信用卡交易记录数据建立分类模型来预测哪些交易记录是异常的哪些是正常的. 任务流程: 加载数据,观察问题 针对问题给出解决方案 数据集切分 评估方法对比 逻辑回归模型 建模结果分析 ...
最新文章
- Transformer-LS霸榜ImageNet,输入长度提升三倍!极度压缩参数
- 别忘了,明天是BCH的压力测试日
- 聚集索引和非聚集索引实例
- Response.Redirect 与 异常(线程正在中止)
- shell printf命令:格式化输出语句
- PSR-2 代码风格规范
- 真空压力变送器怎么样零点标定_恒压供水设备中液位变送器分类及工作原理
- word2003文档题注
- BZOJ3038 上帝造题的七分钟2
- Conficker蠕虫作者可随时引爆“网络核武”
- 漫画 | 前端发展史的江湖恩怨情仇~
- Axure RP9 一启动就崩溃弹出错误报告
- 主数据管理功能模块、实施、提供厂商
- python环境调用OpenModelica模型并进行仿真计算
- 10个精选国外免费空间
- JAVA反编译工具总结
- 自己动手做sidebar
- 8个动作帮你腰部快速塑形
- BP神经网络原理公式推导
- 防治新冠病毒感染,儿童如何居家备药?