python超详细知识点汇总整理

1、注释以及编码格式的声明

  • 单行注释:# (后面放上被注释的内容)
  • 多行注释:字符段落的上下加上三引号 举个例子: ‘’’ …‘’’
  • 编码格式的声明:#coding:utf-8 或者是 #coding=utf-8

2、代码编写格式和一些琐碎说明

  • 同一级别的代码块所尽量必须相同 并且不要在行尾加上分号

  • python里面的if等固定的词组叫做保留字 不叫关键字

  • python是一种动态类的语言,变量的类型可以随时变化,随着赋值的内容的变化而变化

  • 内置函数type()可以返回变量类型 直接放print里面打印即可

  • 内置函数id()可以获取变量的内存地址,直接单独放在一行自动打印输出,不同名字的变量赋相同值的话指向的地址也会是一样的

  • str()函数用于将数值转换成字符串 方便输出

  • print只能输出字符串类型的,其他类型变量必须转成字符类型的才能被print出来

  • 字符串中使用单双引号必须在同一行 三引号内的字符序列可以分布在连续的多行上面 并且保留格式

3、输入输出

  • 变量名=数据类型(input(“提示文字”)),可以直接在屏幕输入
  • 输出print(输出内容) 里面还可以是例如if的表达式 并且一般一条print输出之后会自动换行,如果想要不换行print(a,b) 中间用逗号分开,print(a if a>b else b)
  • 在print()里面 “ ,end=" ” 双引号里面这部分表示不换行输出,下一条print和此条输出语句在一行一起输出

4、运算符

  • python里面的除法“/”之后 保留的可以是浮点数 要想舍去浮点部分应该用“//”这个除法符号
  • “**” 两个星号 表示幂运算 返回x的y次方
  • 逻辑运算符在这里面不是符号表示了 是“and” “or” “not” 表示

5、条件表达式

  • python里面的if语句的条件判断不需要加上括号,但是在判断语句后面要加上冒号,比如

    if a>b: r=a

  • 还可以放在一行里表示 比如:r=a if a>b else b [C语言里面是a= b>0? b:c]

    中间条件判断为true则返回if语句左边的值 否则返回右边的值

  • 多选一的情况在C里面有if - else if - else,但是在python里面“多选一表达方法”:if - elif -else,if和elif都需要表达式判断真假,也就是说后面都要跟着判断表达式,而else不需要判断

6、循环体-for循环

  • for 循环变量 in 对象: 循环体 举个例子:for i in range(101): result+=1

  • range()是一个内置函数,用于生成一系列连续的整数 多用于for循环,格式range(start,end,step)

    • start:用于指定计数的起始值,可以省略,省略的话表示从0开始
    • end:用于指定计数的终止值(但不包括该值),不能省略
    • step:指定两个数之间的间隔,可以省略,省略的话就表示为1

    在使用此内置函数的时候,如果只有一个参数表示的是end,被省略的start表示0,如何有两个参数表示的是start和end,有参个参数的时候,最后一个参数才表示步长

  • 也可以遍历字符串 for ch in string:

  • 注意for语句最后也要加冒号

  • 最后加上end=“”,可以避免print自动换行,print(str(j),end=‘’)

7、序列

  • 索引可以是正数也可以是负数,正数的所以最左边是0,索引是复数的时候最右面是-1,从右往左是从-1开始到…

  • 切片:

    img

    如果指定了步长,那么就按照该步长遍历序列元素,否则一个个的遍历

    ​ 注意:这块end部分,截至部分是按照总个数来排序的,也就是说如果说是6,那么这个截至的位置就是从第一个元素开始数六次所到的数

    在这里插入图片描述

  • 求序列长度是len() 别记错了

8、列表

  • 可以使用list()直接将range()函数循环出来的结果转换成列表 list(range(10,20,2)) —> [10,12,14,16,18]

  • 可以通过del删除列表 用法:del 列表名

  • 使用for循环和enumerate()可以实现同时输出索引值和元素内容 for index item in enumerate(列表名):

  • 添加元素:借助append,用法:列表名.append(添加的对象)

  • 修改元素:直接重新赋值即可

  • 删除元素:借助索引,直接用del 列表名[索引值],也可以用列表对象的remove()方法,列表名.remove(删除内容)

  • 对列表的统计计算:

    • count() 用于获取指定元素在列表中出现的次数 用法:列表名.count(对象内容)
    • index()获取指定元素在列表中首次出现的位置 用法:列表名.index(对象内容)
    • sum(列表名[start,end]) 用于求列表中元素的和,一般默认没参数时是从0到最后
  • 排序:

    • 列表对象的sort()实现 列表名.sort(reverse=True),true表示降序 false表示升序,默认也是升序

    • 内置sorted()函数实现 sorted(reverse=True)升降序表示方法一样 ,只不过这个是直接用,不用列表名调用了

      新列表名=sorted(被排序的列表名,reverse=True)

9、元组

元组用于保存程序中不可修改的内容,元组中的元素不可以单独修改,而列表可以任意修改

  • 创建元组和创建列表类似,创建元组用小括号(),创建列表用中括号[],但是实际上小括号不是必须要加上的,只要用一组值用逗号分开,python就会认为这是个元组,比如:a=“你好”,“2020”,“这个世界”
  • 注意区分:
verse = ("一片冰心在玉壶")  //这是元组
verse = ("一片冰心在玉壶")	   //这是字符串
  • 可以使用tuple(range()直接将range()函数循环出来的结果转换成列表 list(range(10,20,2)) —> (10,12,14,16,18)

  • 元组不能单独地对元组中某一个值进行更改,但是可以对整个元组进行修改

  • **元组中如果只有一个元素,一定要在最后加上逗号!**不加上的话就会被当成一个字符串了

10、字典

  • 是一个无序的可变序列,并且只能通过键值来读取而不能通过索引来读取,字典名={‘键名1’:‘元素的值’,‘键名2’:‘值’} 注意:键值必须唯一,字典中的键是不可变的,所以不能用列表作键值

  • 字典的创建还有一种方法:借助已有数据快速创建字典,用dict()方法

    1. 字典名字=dict(zip(list1,list2))

    注释:zip()函数,用于将多个列表或者元组对应位置的元素组合为元组,并返回包含这些的zip对象

    >>> keys = ['a', 'b', 'c']
    >>> values = [1, 2, 3]
    >>> dictionary = dict(zip(keys, values))
    >>> print(dictionary)
    {'a': 1, 'b': 2, 'c': 3}
    
    1. 也可以直接在dict()里面,加入许多块类似 键名=‘元素的值’ 的内容

    2. 或者直接添加dict.fromkeys(list1),只是包含键名的字典,创建值为空的字典

    3. 也可以借助字典和元组创建字典:dict{元组名字:列表名字},这样的话表示一个元组代表一个键

      注释:这时候用的是大括号,并且中间用冒号表示,还有就是键不能用列表表示

  • 字典的打印,一种是直接利用print(字典[‘键值’])

    要么就是通过get(‘键值’,‘键值对应为空的时候的返回值’)

    在这里插入图片描述

11、集合

集合最主要的作用就是去重

  • 集合名字={元素1,元素2,…},因为set是无序的,所以每次输出时元素的排列顺序可能与创建时不同

  • 也可以用set()函数创建集合,比如集合名=set(【列表元素1,列表元素2,…】),或者在里面直接放一个字符串,但是他会自动去掉重复元素

  • 表示空集合的时候只能借助set函数实现,不能直接只是用个大括号表示,因为这表示空字典

  • 添加元素是借助add()函数,直接集合名字调用然后在括号里填充添加内容

  • 删除元素,remove(),clear(),pop()

  • 集合间的运算,& 表示交集,| 表示并集,- 表示差集,^ 表示对称差集

12、字符串

  • 通常使用:变量=字符串名字.encode(‘GBK(或者其他编码格式)’),表示将旧字符串转换成按照新要求的这个编码格式
  • decode(‘编码格式’),表示解码,在设置解码所用的编码格式时,需要与编码时采用的字符编码一致
  • 使用“+”可以进行字符串之间的拼接,但是不允许字符串直接与其他类型的数据拼接,比如和整性“num=123”,可以转换成字符串后进行拼接:比如 +str(num)
  • 要想算字符串的实际长度,应该在len()函数中,放入的是字符串名字.encode(‘编码格式’),而不是单一的字符串名字
  • spilt(‘被分割的符号字符’,‘被分割的次数’),被分割的次数不指定表示全部分割,最后切分成字符串列表
  • lower()和upper()用于将字符串中字母的大小写转换

13、函数

  • 需要一个关键字 def 函数名(参数):,然后下面放函数体,别忘了冒号

  • 这里的值传递(形参改变后实参不变化)和引用传递的区分是区别在,形参如果是可变对象比如列表的时候,就是引用传递,而形参是字符串这样的不可变对象,就是值传递*

  • python里面函数的参数可以设置默认值 比如 def a(height,person=‘路人’):

    注意:为形参设置默认参数的时候,默认参数指向的一定是不可变对象,比如NONE或者字符串,不能是列表之类的

  • 可变参数:

    1. 形式参数名字:可以让函数接受多个参数,但是注意,如果是多个参数的话实际上是将他们放进了一个元组中,所以,如果想将多个参数都输出,应该借助for循环

      如果将一个前面定义好的列表当实际参数放进函数中去,应该在列表名字前面加上号,比如a(*list)

    2. 形式参数名字:这次不是放在元组了,是放在字典里

  • python在定义全局变量的时候,这个变量只要在函数外面定义的,就是全局变量,在函数体中也可以访问到

    当局部变量(函数体内定义的变量)和全局变量重名时候,对函数体的变量进行赋值后,不影响函数体的变量

  • 在函数体内变量用global关键字修饰后,该变量也变成了为全局变量

  • 匿名函数

    result = lambda [参数] :表达式 ,举个例子:result = lambda r:math.pi×r×r (求圆的面积),打印的时候

    print( result® )

    在使用匿名函数的时候需要定义一个变量,用于调用lambda表达式

    在这里插入图片描述

14、类

  • 创建类后通常会创建一个_ init _() 方法。类似java中的构造方法,但是这个方法必须包含一个self参数,并且必须是第一个参数

    因为该方法调用的时候会自动传递实际参数self,因此当__ init __() 【前后两个双下划线】只有一个参数的时候,在创建类的实例的时候,就不需要指定实际参数了 eg: 实例类名=类名(),括号中不用填放参数

  • 在python中 还可以通过类名动态的为类和对象添加属性,比如:类名.新属性名=“这是一个新属性” 之后就可以直接用了

    #直接,类名.新属性名=“这是一个新属性” 
    Geese.beak = "收拾收拾"
    
  • 注意:在类中的定义的方法(实例方法),如果这些实例方法想要调用类属性,必须加上类名字 eg:Geese.number

  • 在python中定义私有属性和保护属性不像C++或者java中直接用private等关键字声明属性了,在这里直接借助下划线的数量和不同位置来声明。

    eg:

    1. 在前面加上单下划线:(_foo),表示protect(保护类型),只允许类本身和子类访问,但不能用“from module import” 语句导入

    2. 在前面加上双下划线:(__foo),表示private(私有类型),只允许定义该方法的类本身进行访问,而且不能通过类的实例进行访问,但是可以通过如下方法访问:

      “类的实例名._类名__xxx”
      

在这里直接借助下划线的数量和不同位置来声明。

eg:

  1. 在前面加上单下划线:(_foo),表示protect(保护类型),只允许类本身和子类访问,但不能用“from module import” 语句导入

  2. 在前面加上双下划线:(__foo),表示private(私有类型),只允许定义该方法的类本身进行访问,而且不能通过类的实例进行访问,但是可以通过如下方法访问:

    “类的实例名._类名__xxx”
    
  • 继承的时候是加一个括号,class 子类名(基类名)

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

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

相关文章

大数据设计为何要分层,行业常规设计会有几层数据

大数据设计通常采用分层结构的原因是为了提高数据管理的效率、降低系统复杂度、增强数据质量和可维护性。这种分层结构能够将数据按照不同的处理和应用需求进行分类和管理,从而更好地满足不同层次的数据处理和分析需求。行业常规设计中,数据通常按照以下…

暴力破解pdf文档密码

首先安装pdfcrack工具包 apt install pdfcrack 默认密码字典存储在/usr/share/wordlists里,是gz文件,将它解压并copy到pdf目录 然后使用pdfcrack破解 密码在最后一行user-password的单引号里

Python面对对象 - 类的反射机制

Python面对对象类的反射机制是面向对象编程语言中比较重要的功能,可以动态获取对象信息以及动态调用对象。通过字符串形式的类名或属性来访问对应类或属性。 一、对象的反射 1. getattr 获取指定字符串名称的对象属性、方法: 当访问的属性不存在时&#…

【四】【单片机】蜂鸣器,蜂鸣器模块化编程 1000HZ 鸣响 ms 毫秒,利用定时器让蜂鸣器以特定频率响 ms 毫秒

蜂鸣器模块化编程 1000HZ 鸣响 ms 毫秒 //Buzzer.h #ifndef __BUZZER_H__ #define __BUZZER_H__void Buzzer_Time(unsigned int ms);#endifBuzzer.h文件中只含有一个Buzzer_Time函数&#xff0c;这个函数用来让蜂鸣器以1000HZ固定频率发声ms毫秒。 //Buzzer.c #include <REG…

Python学习(二)

数据容器 数据容器根据特点的不同&#xff0c;如&#xff1a; 是否支持重复元素是否可以修改是否有序&#xff0c;等 分为5类&#xff0c;分别是&#xff1a; 列表&#xff08;list&#xff09;、元组&#xff08;tuple&#xff09;、字符串&#xff08;str&#xff09;、集…

09_Web组件

文章目录 Web组件Listener监听器ServletContextListener执行过程 Filter过滤器Filter与Servlet的执行 案例&#xff08;登录案例&#xff09; 小结Web组件 Web组件 JavaEE的Web组件&#xff08;三大Web组件&#xff09;&#xff1a; Servlet → 处理请求对应的业务Listener →…

Linux利用Jenkins部署SpringBoot项目保姆级教程

在当今快速发展的软件开发领域&#xff0c;持续集成和持续部署&#xff08;CI/CD&#xff09;已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性&#xff0c;成为众多开发者和企业的首选平台。而Spring Boot&#xff0c;作为一个轻量级的Jav…

飞天使-k8s知识点28-kubernetes散装知识点5-helm安装ingress

文章目录 安装helm添加仓库下载包配置创建命名空间安装 安装helm https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件&#xff0c;修改里面内容,然后重新启用export PATH$P…

深入理解 Hadoop 上的 Hive 查询执行流程

在 Hadoop 生态系统中&#xff0c;Hive 是一个重要的分支&#xff0c;它构建在 Hadoop 之上&#xff0c;提供了一个开源的数据仓库系统。它的主要功能是查询和分析存储在 Hadoop 文件中的大型数据集&#xff0c;包括结构化和半结构化数据。Hive 在数据查询、分析和汇总方面发挥…

如何使用 Python 本地客户端操作读写云服务器 Redis 缓存数据库详细教程(更新中)

Redis 基本概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的使用 ANSI C 语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库&#xff0c;并提供多种语言的 API。它通常被称为数据结构服务器&#xff0c;因为值&#xff08;value…

本地虚拟机服务器修改站点根目录并使用域名访问的简单示例

说明&#xff1a;本文提及效果是使用vmware虚拟机&#xff0c;镜像文件是Rocky8.6 一、配置文件路径 1. /etc/httpd/conf/httpd.conf #主配置文件 2. /etc/httpd/conf.d/*.conf #调用配置文件 调用配置文件的使用&#xff1a; vim /etc/httpd/conf.d/webpage.conf 因为在主配…

5个免费的3D钣金CAD软件

如果你正在设计简单的折叠钣金零件&#xff0c;则只需设计一些具有圆角半径的法兰&#xff1a;一个简单的钣金模块。 首先&#xff0c;你可以采用老式方式绘图并以 2D 方式完成所有操作。 许多传统制造商仍在使用 2D DWG 和 DXF 图纸。 因此&#xff0c;你很有可能只需快速起草…

【MySQL】DQL-聚合函数介绍&常见聚合函数&语法&注意事项&可cv例题语句

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 疫苗预约管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

使用1panel部署Ollama WebUI(dcoekr版)浅谈

文章目录 说明配置镜像加速Ollama WebUI容器部署Ollama WebUI使用问题解决&#xff1a;访问页面空白 说明 1Panel简化了docker的部署&#xff0c;提供了可视化的操作&#xff0c;但是我在尝试创建Ollama WebUI容器时&#xff0c;遇到了从github拉取镜像网速很慢的问题&#xf…

公司官网怎么才会被百度收录

在互联网时代&#xff0c;公司官网是企业展示自身形象、产品与服务的重要窗口。然而&#xff0c;即使拥有精美的官网&#xff0c;如果不被搜索引擎收录&#xff0c;就无法被用户发现。本文将介绍公司官网如何被百度收录的一些方法和步骤。 1. 创建和提交网站地图 创建网站地图…

Matlab|孤岛划分|弹性配网故障划分模型

目录 1 主要内容 1.1 DistFlow 模型 1.2 虚拟潮流 1.3 目标函数 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要复现《A New Model for Resilient Distribution Systems by Microgrids Formation》&#xff0c;建立灾害情况下配网优化孤岛划分方案&#xff0c;通…

【Linux】POSIX信号量{基于环形队列的PC模型/理解信号量的出现/参考代码}

文章目录 1.POSIX信号量1.1介绍1.2接口 2.基于环形队列的PC模型2.1环形队列常用计算2.2如何设计&#xff1f;2.3如何实现&#xff1f; 3.细节处理3.1空间资源和数据资源3.2push/pop3.3理解信号量的出现1.回顾基于阻塞队列的PC模型中条件变量的使用2.如何理解信号量的投入使用&a…

P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值

题目描述 给定一棵包含 &#xfffd;N 个节点的完全二叉树&#xff0c;树上每个节点都有一个权值&#xff0c;按从上到下、从左到右的顺序依次是 &#xfffd;1,&#xfffd;2,⋯&#xfffd;&#xfffd;A1​,A2​,⋯AN​&#xff0c;如下图所示&#xff1a; 现在小明要把相同…

9.动态规划——1.从递归到动态规划

例题——N阶楼梯上楼问题 分析 大事化小&#xff1a;爬N层有F(N)种可能&#xff0c;有 F ( N ) F ( N − 1 ) F ( N − 2 ) F(N)F(N-1)F(N-2) F(N)F(N−1)F(N−2)小事化了&#xff1a; F ( 1 ) 1 &#xff0c; F ( 2 ) 2 F(1)1&#xff0c;F(2)2 F(1)1&#xff0c;F(2)2 …