【Python全栈_公开课学习记录】

一、初识python

 (一).Python起源

Python创始人为吉多·范罗苏姆(荷兰),Python崇尚优美、清晰、简明的编辑风格。Python语言结构清晰简单、数据库丰富、运行成熟稳定,科学计算统计分析领先。目前广泛应用于云计算、Web开发、科学运算、人工智能、系统运维、金融领域。在金融领域中,主要用于量化分析、金融分析尤其擅长策略回测。机缘巧合通过视频课程学习Python,向金融+Python方向靠拢。

Python是一门解释性语言。区别于输出结果型,通过及时输出,提高开发效率。

(二).python的基本知识

1.python变量的命名规则

(1).python变量由字母、数字、下划线组成

(2). python变量不能用纯数字,也不能用数字开头

(3). python变量不能是python的关键字

2.python变量命名的常用规范

(1). 变量名不要太长

(2).变量名要有意义

(3)变量名区分大小写

(4).变量名不要用中文

(5).多使用驼峰体和下划线命名

3.python变量类型

(1).int类型,整数,可以进行+、-*、/、%(计算余数)、//(整除)运算

(2).str类型,字符串,',",'''。可以通过type(变量)查看数据类型,字符串可以进行+ *运算

(3).bool类型,真命题或假命题,结果True、False,只用来条件判断

(4).用户交互,使用input(),input接收到的为字符串

4.python基本数据类型

(1). int整数

#bit_length()返回一个数的二进制长度

(2)str字符串

由',",'''括起来的内容是字符串,字符串是不可改变的数据类型,不论执行任何操作,原字符串是不会改变的,每次操作都会返回字符串。

a.字符串的索引和切片

索引从0开始,使用[下标]

切片[起始位置:结束位置] #切片时顾头不顾尾,只能切到开头的位置,切不到结尾,默认从左往右切

print(s[-1:-3:-1])"-1"表示步长,每位移一单位,从右往左切片

b.字符串的修改

sn=s.capitalize() 把字符串首字母变成大写

sn=s.upper() 把字符串变成大写

sn=s.lower() 把字符串变成小写

sn=s.swapcase() 把字符串大小写互换

sn=s.title() 把字符串每个单词首字母变成大写

sn=s.center(x,"*or空白等") 把字符串左右两边用*拼接成x个单位

sn=s.strip() 默认去掉空格,空白,可以指定去掉的内容 (去掉左侧空格:s.lstrip 去掉右侧空格:s.rstrip)

sn=s.erplace("old","new") 把字符串中的内容进行替换

sn=s.split() 对字符串进行切割,切完的结果是一个列表 #与 joint相对

c.字符串的查找

sn=s.startwith() 字符串是否以xxx开头

sn=s.endwith() 字符串是否以xxx结尾

sn=s.count(a) 字符串中a出现的次数

sn=s.find(a) 查找字符串中a第一次出现的位置,没有返回-1

sn=s.inde(a) 查找字符串中a的位置,没有会报错

d.字符串的条件判断

s.isdigit() 判断是否为数字

s.isalpha() 判断是否为字母

s.isalnum() 判断是否为数字

e.字符串长度

len(s) 字符串中字符的个数 #python内置函数

(3)bool布尔值

布尔值只有两个值,True,False,空的东西是False,非空的是True

(4)list列表

a.什么是列表

列表是一个可变的数据类型,列表由[]表示,每一项元素用逗号隔开,列表什么都能装,能装对象的对象,列表可以装大量的数据

b.列表的索引和切片

列表和字符串一样,也有索引和切片,切片切出的内容是列表,索引的下标从0开始,[起始位置:结束位置:步长]

c.列表的增删改查

增加:lst.append() 在原有列表基础上进行的操作,屁股后面添加,只能加一个

lst.insert(n,xxx) 在第n个位置插入xxx

lst.extend(["",""]) 元素为列表整体添加,否则迭代添加

删除:lst.pop(n) 删除指定位置元素

lst.remove("") 删除特定元素

del lst[:] 切片删除

lst.clear() 清空

修改:lst[n]="xxx" 修改第n个元素为xxx

lst[m:n]=lst["x"] 切片部分修改为x

查询:for el in lst:

print(el)

d.列表的相关操作

计数:lst.count("") 列表中某个元素的个数

排序:lst.sort() 将列表正序排列

括号中加"reverse=True"变为降序排列

翻转:lst.reverse() 将列表中的元素翻转

嵌套:lst[][] 可进行降维操作

lst="_"join(["",""])将列表转换成字符串,每个元素之间用_连接

split字符串切割为列表

(5)tuple元组

元组tu用()表示,元组中如果只有一个元素,需要在括号中加入一个逗号,Tu=tuple()为空元组,元组是一个可迭代对象,可以使用for循环。

元组不可以进行增删改,只能看,可以查询,切片。

元组查询:tu[],tu[m:n]

元组第一层元素不能进行赋值,内部元素是没有要求的

(6)dict字典

a.字典的含义

字典dict用{}表示,字典为键值对数据,{key:value},具有唯一性特点

字典中的键都必须是可hash的,不可变的任何数据类型都可以当做字典中的键,字典中的值没有任何限制。

b.字典的增删改查

增加:dic[key]=value

dic.setdefault(key,value) 如果字典中不存在就进行添加,存在不做任何操作

删除:dic.pop("key")

del dic["key"]

修改:dic[key]=value 修改字典键对应的值

dic.update(字典)

查找:dic(key) 没有会报错

dic.get(key) 没有返回none

set.default(key)

c.字典的其他操作:

dic.keys 获取到的键存在一个高仿列表中

dic.values 获取到的值存在一个高仿列表中

dic.items 获取到的所有键值对元组形式存在一个高仿列表中

dic.fromkeys 不会对字典产生影响,fromkeys直接使用类名进行访问

列表和字典在循环的时候不能直接删除,需要把要删除的内容记录在新列表中,然后循环新列表进行删除。

(7)set集合

a.set集合定义:

set集合是Python的一个基本数据类型,一般不是很常用,set中的元素是不重复的,无序的,里面的元素必须是可hash的(int,str,tuple,bool),可以这样来记,set就是dict类型的数据,但是不保存value,只保存key,set也用{ }表示。

#set中的元素是可hash的,set本身不可hash.

集合去重

b.set集合的增删改查

增加:s.add

s.update 迭代更新

删除: s.pop # 随机弹出一个

s.remove(“xxx”) #直接删除元素 元素不存在会报错

clear() 清空集合,打印出来是set()与dict区分

修改:

Set集合中的数据没有索引,也没有办法定位一个元素,所以没有办法直接修改,可以采用先删除后添加的方式完成修改操作

c.set集合的常用操作

查询:for 循环

交集:print(s1 & s2)

并集:  print(s1 | s2)

差集:print(s1 - s2)

子集:print(s1 <s2)

5.深浅拷贝

lst2 = lst1      # 赋值

没有创建新对象,共用同一对象。


lst2 = lst1[:]  #浅拷贝

只拷贝第一层内容: [:],copy()


深拷贝:把对象内部的内容全部拷贝一份,引入copy模块。

import copy

lst2 = copy.deepcopy(lst1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DSP 开发例程(5): tcp_server

目录 DSP 开发例程(5): tcp_server创建工程源码编辑tcp_echo.chelloWorld.c 调试说明 DSP 开发例程(5): tcp_server 此例程实现在 EVM6678L 开发板上创建 TCP Server进程, 完成计算机与开发板之间的 TCP/IP 通信. 例程源码可从我的 gitee 仓库上克隆或下载. 点击 DSP 开发教程…

【机器学习合集】模型设计之注意力机制动态网络 ->(个人学习记录笔记)

文章目录 注意力机制1. 注意力机制及其应用1.1 注意力机制的定义1.2 注意力机制的典型应用 2. 注意力模型设计2.1 空间注意力机制2.2 空间注意力模型2.3 通道注意力机制2.4 空间与通道注意力机制2.5 自注意力机制2.5 级联attention 动态网络1. 动态网络的定义2. 基于丢弃策略的…

PostgreSQL逻辑管理结构

1.数据库逻辑结构介绍 2.数据库基本操作 2.1 创建数据库 CREATE DATABASE name [ [ WITH ] [ OWNER [] user_name ] [ TEMPLATE [] template ] [ ENCODING [] encoding ] [ LC_COLLATE [] lc_collate ] [ LC_CTYPE [] lc_ctype ] [ TABLESPACE [] tablespace ] [ CONNECTION L…

Day17力扣打卡

打卡记录 参加会议的最多员工数&#xff08;拓扑排序 分类讨论&#xff09; 链接 计算内向基环树的最大基环&#xff0c;基环树基环为2的情况分类讨论。 class Solution { public:int maximumInvitations(vector<int> &favorite) {int n favorite.size();vector…

4.多层感知机-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

SDK是什么

SDK 是“Software Development Kit”&#xff08;软件开发工具包&#xff09;的缩写&#xff0c;它是一组用于开发特定软件应用、硬件平台、计算机系统或操作系统的开发工具的集合。SDK 通常包括一组开发工具、库、文档和示例代码&#xff0c;以帮助开发者更快地开发和部署应用…

SAML- 安全断言标记语言

一、概念 安全断言标记语言&#xff08;SAML&#xff09;是一种开放标准&#xff0c;用于在各方之间&#xff08;特别是身份提供商和服务提供商之间&#xff09;交换身份验证和授权数据。SAML 是一种基于XML的安全断言标记语言&#xff08;服务提供商用来做出访问控制决策的语句…

HTML标签、CSS介绍

标签的分类: 块级/行内 # 块级标签: 独占一行 h1~h6 p div """ 块儿级标签可以修改长宽. 行内标签不可以, 就算修改了也不会变化.块级标签内部可以嵌套任意的块级标签和行内标签. 特例: 是p标签虽然是块级标签 但是它只能嵌套行内标签 不能嵌套块级标签. 如…

linux安装apache并配置userid站点

目录 一、linux安装apache的方式 1、安装wget 2、下载CentOS 7的repo文件 3、更新镜像源 二、安装apache 1.通过命令直接安装apache(linux的软件包为httpd) 2.启动httpd服务 3.访问一下 三、apache配置文件 1.主配置文件 2.修改根目录 3.修改下端口 4.apache的工作…

BUUCTF 数据包中的线索 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 公安机关近期截获到某网络犯罪团伙在线交流的数据包&#xff0c;但无法分析出具体的交流内容&#xff0c;聪明的你能帮公安机关找到线索吗&#xff1f; 密文&#xff1a; 下载附件&#xff0c;解压得到一个.pcapng文…

【兔子王赠书第5期】ChatGPT速学通:文案写作+PPT制作+数据分析+知识学习与变现

文章目录 前言ChatGPT推荐图书作者简介内容简介推荐理由 粉丝福利尾声 前言 程序员如果有一天代码写不动了&#xff0c;还能干什么&#xff1f; 一位 80 后女程序员“兰猫”给出了她的答案——转型 AI 写手。兰猫从事程序员工作十余年&#xff0c;在繁重的工作压力下&#xf…

大数据毕业设计选题推荐-系统运行情况监控系统-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

leetCode 2915. 和为目标值的最长子序列的长度 + 动态规划 +01背包 + 空间优化 + 记忆化搜索 + 递推

2915. 和为目标值的最长子序列的长度 - 力扣&#xff08;LeetCode&#xff09; 给你一个下标从 0 开始的整数数组 nums 和一个整数 target 。返回和为 target 的 nums 子序列中&#xff0c;子序列 长度的最大值 。如果不存在和为 target 的子序列&#xff0c;返回 -1 。子序列 …

ubuntu下vscode终端输出出现空白的问题

当终端 输出铺满后 再继续回车 会出现局部空白 这是vscode 的bug&#xff1f;有大佬知道解决办法的可以评论区留言。

Flutter 04 按钮Button和事件处理、弹框Dialog、Toast

一、按钮组件 1、按钮类型&#xff1a; 2、按钮实现效果&#xff1a; import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);overrideWidget build(BuildContext co…

Stream 流对象的创建与各方法

Stream 流对象的创建与各方法 目录 1.0 Stream 流的说明 2.0 Stream 流对象的创建 2.1 对于 Collection 系列集合创建 Stream 流对象的方式 2.2 对于 Map 系列集合创建 Stream 流对象的方式 2.3 对于数组创建 Stream 流对象的方式 3.0 Stream 流的中间方法 3.1 Stream 流的 …

《算法设计与分析》 蛮力法实验报告一

1.&#xff08;洛谷 P1008&#xff09;将 1,2...9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数构成 1:2:3 的比例,试求出所有满足条件的三个三位数。 输入格式&#xff1a; 无 输出格式&#xff1a; 若干行&#xff0c;每行 3 个数字。按照每行第 1 个数字升序…

vue基于ElementUI/Plus自定义的一些组件

vue3-my-ElementPlus 源码请到GitHub下载使用MyTable、MySelect、MyPagination 置顶|Top | 使用案例&#xff1a; 1.0 定义表格数据&#xff08;测试使用&#xff09; data() {return {tableData: [],value:[],valueList: [],}; },// 构造表格测试数据// 1 第一行&#xf…

基于nodejs+vue客户管理管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

【设计模式】第6节:创建型模式之“原型模式”

由于本人现在所使用的语言主要是golang&#xff0c;所以后面的代码主要使用golang编写。语言实现应该不是障碍&#xff0c;主要是理解每种设计模式它的思想。 如果对象的创建成本比较大&#xff0c;而同一个类的不同对象之间差别不大&#xff08;大部分字段都相同&#xff09;…