当前位置: 首页 > news >正文

(待完善)python学习参考手册

这里写目录标题

第一次发布: 2023.11.8 (待完善 Step1)

观前浅谈:

本篇出发点仅仅是为了应对校内期中测试,比较接近应试技巧.希望在看本篇的同学包括我自己都要记住,学习以及人生没有捷径,更不存在速成,只有不断日积月累学习的进步,谢谢!

诸如此类被引用中的文字,皆为拓展.如果时间紧迫可以直接, 以目录为主要学习内容,其他为次要阅读.

本篇共计()字.看完这一篇大概需要(待补充), 加一些很辛苦的话,求赞求收藏的话,还有学习总收获的话,以及xxxxx. 本篇目的是为了梳理自己做学,以及试图让正在阅读本篇的朋友有所收获,没有浪费您宝贵的(待补充)分钟. 同时期待正在阅读的朋友来提出宝贵的修改建议,以及批评改正(待补充,这里可以参考一下畅销书里面的序言)…
image.png

如何学习编程: 听一遍 写一遍 操作一遍 想一遍 分享一遍 总结归纳
如何学习理论: 学习 复习 教会他人 总结归纳(复习远大于学习)

学习路线 :

  • py基础语法(花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)_哔哩哔哩_bilibili) + 廖雪峰文档 (了解基础语法 打基础)(第一天,第二天)
  • ==> 头歌习题刷起来起来(熟悉语法) + 学习通文档 (明确考点)
  • ==> 想做个小项目双十一秒杀
  • ==>(选学)爬虫 + 数据分析

学习心得笔记:

Step1:

image.png

image.png

在写代码之前, 请千万不要用"复制""粘贴"把代码从页面粘贴到你自己的电脑上.写程序也讲究一个感觉,你需要一个字母一个字母地把代码自己敲进去, 在敲代码的过程中, 初学者经常会敲错代码: 拼写不对,大写不对,混用中英文标点,混用空格和Tab键, 所以,你需要仔细地查找,对照,才能以最快的速度掌握如何写程序.

简单但一问不知怎么的组织语言去回答的小问题:

1.什么是字符串?
这种用单引号或双引号括起来的文本,在程序中叫做字符串
2.SytaxError 代表什么错误?
SytaxError是语法错误.

什么是提示符?

提示符就是输入命令的地方

python解释器是什么?

Python解释器是 解释和执行python代码的工具
image.png
image.png

请正在阅读本文的朋友,安装一下PyCharm以及如何进行科学的省钱:

此处也请朋友 STFW(Search The Friendly Web),下载之后继续往下阅读.

Python中的命令行模式和交互模式的区别是什么?
  1. 是否会自动打印结果

举例: Python的命令行模式进行 100 + 200, 需要再多一行代码 print(“”);打印出来,而 交互模式 100 + 200 自动打印出 300
2. 执行文件时候,是否是执行全部代码
举例: 有一个JiShuGaiBianShiJie.py的文件在命令行模式下会执行里面所有代码. 但再交互模式下, 是输入一行执行一行,不会直接执行全部代码.

Python的交互模式并不是Python正式运行的环境,而是方便调试代码,以及方便初学者学习.

请正在阅读本文的朋友安装一下Visual Studio Code,Visual Studio Code的安装:

下载的原因是让JiShuGaiBianShiJie.py得以保存且可以反复执行**, 因为仅在交互模式下执行之后代码是不会保存的**,只有写在文本中保存之后才能用命令行模式反复执行使用
此处也请朋友您 STFW(Search The Friendly Web),下载之后继续往下阅读.

venv是什么?有什么作用?

venv是python的虚拟环境.
当我们要开发多个应用程序的时候,每个应用可能都需要一套区别于其他应用的运行缓解, 所以venv的作用便是为每一个应用创建一套"隔离"的Python运行环境
image.png

了解Python中的print()语法

print()语法格式
print(*objects, sep=‘’, end=‘\n’, file=sys.stdout)

参数理解:
object 表示一次可以输出多个对象.输出多个对象时候, 需要用 , 分割
sep 用来间隔多个对象, 默认值是 一个空格
end 用来设定以什么结尾. 默认值是换行符\n, 我们也可以换成其他字符串
file 要写入的文件对象

了解Python中的input()语法

image.png
很关键一点,就是input输入的数据类型 都是字符串!!!

了解一下注释:

'#'用来单行注释
image.png

image.png

image.png

image.png

采用编译方式执行的语言称为: 静态语言
采用解释方式执行的语言称为: 脚本语言

image.png

Python中注释分为单行注释, 多行注释以及中文声明注释

image.png

image.png
保留字就是语言自带的一些有特殊意义的单词
保留字严格区分大小写

image.png
标识符就是"名字", 但要注意就是不能随意命名. 名字都用小写, 常量用大写

image.png
image.png

常量大写,就是程序中不进行修改值的变量

Python中的数据类型可以分为:
数值类型(整数类型,浮点数类型,复数类型)

Python3中常见数据类型(七个):
数字
字符串
布尔类型
列表
元组
集合
字典

= 是赋值符号, 不是数学中的等于号

什么是动态语言?什么是静态语言?

这种变量本身类型不固定的语言称之为动态语言, 与之对应的就是静态语言.静态语言在定义变量时必须指定变量类型,如果赋值的类型不匹配, 就会报错.

除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数

Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

ASCII,Unicode和UTF-8之间的关系:

由于计算机是美国人发明的, 因此, 最早只有127个字符被编码到计算机中,其中含有 大小写英文字母,数字和一些符号. 这个编码表被称为 ASCII编码.然后不足以表达中文, 然后中文又有中文的编码,这就导致很容易出现乱码问题, 之后为了统一,出现了Unicode,Unicode解决了乱码问题,如果我们都用英文的时候,反而空间出现浪费,这时候为了节省空间,又把Unicode编码变为了 UTF-8, UTF-8把一个Unicode字符根据不同数字大小编码为1-6字节, 比如会将英文字母编码为1个字节,汉字3个等等.其中ASCII可以看作UTF-8的一部分.

Unicode字符集应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了

list类型和tuple类型:

list:想要获取最后一个元素,除了计算索引位置外,还可以直接用-1做索引, 直接获取最后一个元素
list和tuple都是python内置的有序集合,一个可变,一个不可变.根据需要来选择使用他们.

python有两种循环, for…in while:

for 变量 in 目标变量
while无特殊

break是提前退出循环
continue是跳过本次循环,直接开始下一次循环

和list比较,dict有以下几个特点:
  1. 查找和插入的速度极快, 不会随着key的增加而变慢
  2. 需要占用大量的内存,内存浪费多

而list:

  1. 查找和插入时间随元素的增加而增加
  2. 占用空间小,浪费内存少

所以dict是用空间换时间的一种发放

set和dict的唯一区别:
仅仅在于有没有存储对应的 value, 但是set的原理和dict一样.
replace方法创建了一个新字符串’Abc’并返回

区分list, tuple,dict, set:

list是方括号[], 如L = [1,2,3]
tuple是圆括号(),如t=(1,2,3)
dict是花括号{}, 如d = {‘张三’:1,‘王五’:2,‘赵六’:3} 不可变对象
set也是花括号{},如s={1,2,3}

函数名是什么:

函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个"别名"

Python的函数返回多值其实就是返回一个tuple
当函数有多个参数时候,把变化大的参数放在前面, 变化小的参数放在后面. 变化小的参数就可以作为默认参数.
使用默认参数有什么好处?
使用默认参数的好处就是能降低调用函数的难度

定义默认参数要牢记一点:默认参数必须指向不变对象!

参数组合:

python中参数有五种:
必选参数,默认参数,可变参数,命名关键字参数和关键字参数
同时五种参数的顺序必须是以上顺序

可变参数:

image.png

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。
image.png

关键字参数:

image.png
关键字参数作用是 拓展函数的功能, 可以接收除了必须参数外更多的参数

区分一下python函数参数:

必选参数:
person(a,b)
默认参数:
person(a=1,b=2)
可变参数:
person(*c)
命名关键字:
person(a,b, *, c, d)
关键字参数:
person(**c)

什么是递归函数:

如果一个函数在内部调用自己本身,这个函数就是递归函数

由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试fact(1000)

尾递归优化的语言可以通过尾递归防止栈溢出。尾递归事实上和循环是等价的,没有循环语句的编程语言只能通过尾递归实现循环

切片(Slice):

切片是用来取出 一个区间中的数据用的
注意:
L[0:3] 是取出 L[0] L[1] L[2]不包括L[3]

迭代(lteration):

用for循环遍历一个 list/tuple,这种遍历称为迭代

列表生成式(List Comprehensions):

生成list用的.
[for x in list(range(1,11))]
输出[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

生成器:

在Python中,这种一边循环一边计算的机制,称为生成器:generator。
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:
(for x in list(range(1,11)))

模块:

说白了就是使用内置的模块,只要安装完毕,这些模块就可以立刻使用
import sys

参考资源(以第一个字的字母进行排序):

廖雪峰文档:第一个Python程序
Web3布道师小钢
小卓的职业生涯引路人拓跋阿秀,江湖人称秀哥
学习通: 电子科技大学中山学院李蓉老师学习文档

相关文章:

(待完善)python学习参考手册

这里写目录标题 观前浅谈:学习路线 :学习心得笔记:Step1:简单但一问不知怎么的组织语言去回答的小问题:什么是提示符?python解释器是什么?请正在阅读本文的朋友,安装一下PyCharm以及如何进行科学的省钱:Python中的命令行模式和交互模式的区别是什么?请正在阅读本文的朋友安装…...

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料: STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 串口调试助手 二、所学内容: 初步学习如何使用STM32的CAN通讯功能,在本章节主要达到板内CAN通讯的效果,即32发送CAN信息再在CAN接收…...

jsvascript使用dhtmlXTreeObject的loadJSONObject绘制目录树

文章目录 1,引入dhtmlXTreeObject的css和js文件2,创建一棵目录树2.1,let tree new dhtmlXTreeObject(id-dhtmltree-0, "100%", "100%", 0);2.2,设置图片根目录(后续使用到的图片都是相对于该目录…...

LeetCode 17. 电话号码的字母组合 中等

题目 - 点击直达 1. 17. 电话号码的字母组合 中等1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 3. 知识与收获 1. 17. 电话号码的字母组合 中等 1. 题目详情 1. 原题链接 LeetCode 17. 电话号码的字母组合 中等 2. 题目要…...

《GPT与AI助手:技术进步与就业前景》

随着人工智能的迅速发展,像GPT(Generative Pre-trained Transformer)这样的自然语言处理技术已经广泛应用于各个领域,各个互联网公司也纷纷推出了自己的AI助手来帮助创作、交流和解决问题。这一技术的广泛应用引发了一系列关于就业…...

线性代数 | 矩阵运算 加减 数乘 矩阵的幂运算

文章目录 1 矩阵加减和数乘2 矩阵与矩阵的乘法2.1 相乘条件:看中间,取两头2.2 相乘计算方法 3 矩阵的幂3.1 观察归纳法3.2 邻项相消法3.3 化为对角 4 判断是否可逆(证明题或者要求求出逆矩阵)4.1 直接观察4.2 由定义式推得4.2.1 待…...

Linux---(五)三大工具yum、vim、gcc/g++

文章目录 一、yum工具1.Linux中安装软件的方法:2.什么是yum?3.yum源更新 二、Linux编辑器--vim1.IDE例子2.vim(1)vim的常用模式及切换模式(2)底层模式常用命令(3)插入模式常用命令(…...

网络通信TCP、UDP详解

目录 IP 和端口 网络传输中的 2 个对象:server 和 client 两种传输方式:TCP/UDP TCP 和 UDP 原理上的区别 为何存在 UDP 协议 TCP/UDP 网络通信大概交互图 IP 和端口 所有的数据传输,都有三个要素 :源、目的、长度。 怎么表…...

Flutter笔记:绘图示例 - 一个简单的(Canvas )时钟应用

Flutter笔记 绘图示例 - 一个简单的(Canvas )时钟应用 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_2855…...

Bard和ChatGPT的一些比较

Bard和ChatGPT的一些比较 2023.11.8版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 选择正确的自动文本生成工具对企业至关重要。本文将详细分析谷歌 Bard 和 ChatGPT 的优缺点,以帮助企业做出明智的选择。无论企业关注的是客…...

centos7安装Nexus(Maven私服)与配置使用教程

之前有位大佬问我,他说有个第三方的Jar包,在idea导出库中使用,现在要部署上线测试,要如何导进去打包。 我说,不用那么麻烦,搞个Nexus私服,将Jar上传上去,然后配置Maven的setting文件…...

Azure 机器学习 - 有关为 Azure 机器学习配置 Kubernetes 群集的参考

目录 受支持的 Kubernetes 版本和区域建议的资源计划ARO 或 OCP 群集的先决条件禁用安全增强型 Linux (SELinux)ARO 和 OCP 的特权设置 收集的日志详细信息Azure 机器学习作业与自定义数据存储连接支持的 Azure 机器学习排斥和容许最佳实践 通过 HTTP 或 HTTPS 将其他入口控制器…...

使用微信小程序控制蓝牙小车(微信小程序端)

目录 使用接口界面效果界面设计界面逻辑设计 使用接口 微信小程序官方开发文档 接口说明wx.openBluetoothAdapter初始化蓝牙模块wx.closeBluetoothAdapter关闭蓝牙模块(调用该方法将断开所有已建立的连接并释放系统资源)wx.startBluetoothDevicesDiscovery开始搜寻附近的蓝牙…...

【react hook】react hook组件中,在forEach中使用async/awati进行异步操作,为什么后面代码没有等待直接同步运行了呢?

这是因为 forEach 方法不会等待 async/await 异步操作的完成。forEach 方法是一种同步的方法,它会在每个迭代内部同步执行一个回调函数。当遇到 await 时,会立即暂停执行,但是 forEach 方法不会等待回调函数中的 await 异步操作完成&#xff…...

高斯过程回归 | GPR高斯过程回归

高斯过程回归(Gaussian Process Regression, GPR)是一种强大的非参数回归方法,它通过假设数据是从一个高斯过程中生成的来预测新的数据点。 高斯过程是一种定义在连续输入空间上的随机过程,其中任何有限集合的观测值都呈多变量高斯分布。 实现GPR的Python代码import numpy …...

[autojs]逍遥模拟器和vscode对接

第一步:启动autojs服务 第二步:去cmd查看ip地址,输入ipconfig 第三步:打开逍遥模拟器中的sutojs-左上角- 连接电脑,然后输入WLAN或者其他ip也行,根据自己电脑实际情况确认 此时vscode显示连接成功。我们写…...

Docker 安装与优化

一、安装Docker 1、关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 02、安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2#解释 yum-utils #提供了yum-config-manager工具 device mapper #是linux内核中支持逻辑卷…...

Wix使用velo添加Google ads tag并在form表单提交时向谷歌发送事件

往head里加代码时,不能看谷歌的代码,要看wix的代码,不然必定踩坑 https://support.wix.com/en/article/tracking-google-ads-conversions-using-wix-custom-code 这里的代码才对,因为wix搞了个velo,这个velo很傻x&am…...

Centos配置邮件发送

在CentOS Linux上配置邮件发送 在这个指南中,我们将讨论如何配置CentOS Linux系统以通过外部邮件服务器发送电子邮件,使用自己的邮件账户进行发送。 第一步:开启SMTP授权码 首先,我们以QQ邮箱为例,需要开启SMTP授权…...

Ubuntu系统使用apt-get管理软件工具

记录一下使用Ubuntu系统的apt-get管理软件工具 先查看一下系统的版本,可以看到这里使用的是Ubuntu20.04版本,版本代号focal rootmyw:~# uname -a Linux myw 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/L…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...