黑马python-python基础语法

1.注释:

单行注释:#注释内容

多行注释:

"""

第一行

第二行

第三行

"""

'''

第一行

第二行

第三行

'''

2.定义变量

变量名=值

变量名满足标识符命名规则即可

3.标识符命名规则:

  • 有数组、字母、下划线组成
  • 不能数字开头
  • 不能使用内置关键字
  • 严格区分大小写

内置关键字如下:

4.数据类型

5.格式化符号

%06d,表示输出的整数显示位数,不足以0补全,超出当前位数原样输出

%.2f,表示小数点后显示的小数位数

eg:print('今年我的年龄是%d' % age)

print('我的名字是%s,年龄是%d' % (name,age))

6.格式化输出字符串:

print(f'我的名字是{name},今年{age}岁')

python3.6新增的方法

7.转义字符

\n:换行

\t:制表符,一个tab键的距离

8.输入功能:

input("提示信息")

input接受用户输入后,一般存储到变量使用,接收到的数据都当作字符串处理

9.转化数据

10.运算符:

  • 算数运算符

  • 赋值运算符

  • 复合赋值运算符

先算复合运算符右边的值,再算复合运算符

  • 比较运算符

  • 逻辑运算符

11.if语句

if 条件:

代码1

代码2

……..

elif 条件:

代码1

代码2

……

else:

以上条件都不执行的情况下执行的代码

12.随机数:

1.导入random模块

       import 模块名

2.使用random模块中的随机整数功能

random.randint(开始,结束)

13.三目运算符

条件成立的表达式 if 条件 else 条件不成立执行的表达式

14.while

while 条件:

代码1

代码2

…..

else:

循环正常结束之后要执行的代码

15.break:终止此循环

    continue:退出当前一次循环继而执行下一次循环代码

16:for循环

for 临时变量 in 序列:

代码1

代码2

……

17.字符串:

使用引号创建字符串

eg:

name1='tom'

name2="sam"

name3='''rose'''

name4="""kate"""

输出:print('helloword')

   print('我的名字是%s' % name)

输入:name=input('提示')

查找:

find():

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则返回-1

语法:字符串序列.find(子串,开始位置下标,结束位置下标)

index():

检测某个字串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常

rfind():和find()功能相同,但查找方向为右侧开始

rindex():和index()功能相同,但查找方向为右侧开始

count():返回某个子串在字符串中出现的次数

修改:

replace():替换

语法:字符串序列.replace(旧子串,新子串,替换次数)

注意:替换次数如果查出子串出现的次数,则替换次数为该子串出现次数

split():按照指定字符分割字符串

语法:字符串序列.split(分割字符,num)

注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个

join():用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串

语法:字符或子串.join(多字符串组成的序列)

18.下标(索引):

str='abcdefg'

str[1]---->b

19.切片:

切片指对操作的对象截取一部分的操作。字符串、列表、元组都支持切片操作。

语法:

序列[开始位置下标:结束位置下标:步长]

注:不包含结束位置下标对应的数据,正负整数均可

步长是选取间隔,正负整数均可,默认步长为一

20.大小写转换:

capitalize():将字符串第一个字符转换成大写

注意:capitalize()函数转换后,只字符串第一个字符大写,其他字符全都小写

title():将字符串每个单词首字符转换成大写

lower():将字符串中大写转小写

upper():将字符串中小写转大写

21.删除空白字符:

lstrip():删除字符串左侧空白字符

rstrip():删除字符串右侧空白字符

strip():删除字符串两侧空白字符

22.字符串对齐

ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

字符串序列.ljust(长度,填充字符)

rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同。

center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同

23.判断

startswith():检查字符串是否以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)

endswith():检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)

isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。

isdigit():如果字符串只包含数字则返回True,否则返回False

isnum():如果字符串至少有一个字符并且所有的字符都是字母或数字则返回True,否则返回False

issapce():如果字符串中只包含空白,则返回True,否则返回False。

24.列表

列表可以一次性存储多个数据,且可以为不同数据类型

[数据1,数据2,…… ]

查找:(1)下标:

     序列排序从0开始,

(2)函数:

index() :返回指定数据所在位置的下标

count():统计指定数据在当前列表中出现的次数

ken():访问列表长度,即列表中数据的个数

in:判断指定数据在某个列表序列,如果在返回True,否则返回False

eg:

not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False

增加:append():列表结尾追加数据,若追加的数据是一个序列,则追加整个序列到列表

列表.append(数据)

  extend():列表结尾追加数据,若追加的数据是一个序列,则将序列数据逐一添加到列表

 insert():指定位置新增数据

列表序列.insert(位置下标,数据)

删除:del():

del 目标

pop():删除指定下标的数据(默认为最后一个),并返回该数据

列表序列.pop(下标)

修改:(1)修改指定下标的数据

列表[序号]=赋值

    (2)逆序:reverse()

    (3)排序:列表序列.sort(key=None,reverse=False)

reverse代表排序规则,True降序,False升序(默认)

复制:copy()

eg:list2=list1.copy()

25.列表的循环遍历:

(1):while循环

i=0

while(i<len(name_list)):

print(name_list[i])

i+=1

(2):for循环

for i in name_loist:

print(i)

26.元组:元组内的数据不可修改

(数据1,数据2,…… )

单个数据元组:(数据1

查找:(1):下标

  (2):元组.index(‘数据’)

  (3):元组.count('数据')   统计某数据出现的次数

  (4):元组.len()

修改:元组内的直接数据如果修改则报错

但如果元组里有列表,修改列表里面的数据则支持

27.字典:

特点:符号为大括号

数据为键值对形式出现

各个键值对直接用逗号隔开

创建:(1):有数据的字典:

dict1={'name':'tom','age':20,'gender':'男'}

    (2):空字典:

dict2={}

dict3=dict()

新增: 字典序列[key]=值

若key不存在,新增键值对,如果存在,则修改值

删除:del 字典序列[ ]

          字典序列.clear()清空字典

修改:字典序列[key]=值

查找:(1)字典序列['key值']

  (2):函数

  字典序列. get('key值')

存在则返回值,不存在则返回none

字典序列.keys()

返回所有key值

字典序列.value

返回所有value值

字典序列.items()

返回所以键值对,每个键值对形成一个元组

遍历:(1)遍历字典的key:

for key in dict1.keys():

print(key)

(2)遍历字典的value:

for value in dict1.values():

print(value)

(3)遍历字典的元素:

for item in dict1.items():

print(item)

(4)遍历字典的键值对:(拆包)

for key,value in dict1.items():

print((f'{key}={value}'))

28.集合:无序,不支持下标

创建:s1={数据,数据}

  s2=set('abcd')

  s3=set()   创建空集合

增加:(1)s1.add(需要增加的新数据)    只能增加单一数据

若增加的数据集合中存在,集合有去重功能,无事发生

  (2)s1.update():增加的数据是序列

删除:(1)集合.remove(指定数据)   #数据不存在报错

  (2)集合.discard(指定数据)    #数据不存在不报错

   (3)集合.pop()     #随机删除某个数据,并返回该数据

查找:in:判断数据在集合序列

 not in :判断数据不在集合序列

 容器类型转换:

tuple(需要转换的)

list(需要转换的)

set(需要转换的)

29.推导式:

用一个表达式创建一个有归路的列表或控制一个有规律列表,又叫列表生成式

eg:

30.函数

定义函数:

def 函数名(参数):

代码

……

调用函数:

函数名(参数)

31.函数的说明文档:

help(函数名):查看函数的说明文档

写法:

def 函数名(参数):

“””说明文档的位置“”“

代码

……

32.变量作用域:

局部变量:定义在函数体内部的变量,只在函数体内部生效

作用:在函数体内部临时保存数据,即当函数调用完成后,则销毁局部变量

全局变量:函数体内、外都能生效的变量

33.位置参数:

调用函数时根据函数定义的参数位置来传递参数

34.关键字参数:

函数调用,通过”键=值“形式加以指定。

无先后书写顺序

位置参数必须写在关键字参数的前面

35.缺省参数

即默认参数,用于定义函数,为函数提供默认值,调用函数时可以不传该默认参数的值

位置参数必须出现在默认参数之前,包括函数定义和调用

36.不定长参数

即可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可以用包裹位置参数,或者包裹关键字参数,来进行参数传递

 传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组

包裹关键字:

无论是包裹位置传递还是包裹关键字传递,都是一个组包过程

37.拆包:

拆包:元组

拆包:字典

38.交换两个变量可使用

a,b=b,a

39.引用:

在python中,值是靠引用传递来的

我们可以用id()来判断两个变量是否为同一个值的引用。我们可以id理解为内存的地址标识

40.递归:

函数内部自己调用自己

41.lambda表达式

无参数:

lambda :100

一个参数:

lambda:参数:含参数表达式

可变参数:

lambda:*args:args

这里的可变参数传入到lambda之后,返回值为元组

42.高阶函数:

把函数作为参数传入,这样的函数称为高阶函数

map(func,list):吧传入的函数变量func作用到list变量的每个元素中,并将结果组成新的列表/迭代器返回

reduce(func,list):func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累积计算

filter(func,list)用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换为列表,可以使用list()来转换

43.文件操作步骤

打开:

open(name,mode):可以打开一个已经存在的文件或者创建一个新文件

name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)

mode:设置打开文件的模式(访问模式):只读、写入、追加等

‘r’:如果文件不存在,报错;不支持写入操作,只读

‘w’:只写,如果文件不存在,新建文件,执行写入,会覆盖原有内容

‘a’:追加:如果文件不存在,新建文件,在原有内容基础上,追加新内容

如果省略不写,表示访问模式为r

其他访问模式:

读取:

文件对象.read(num)

num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

如果有换行(\n)则读取字节数与展示数不同,换行符有字节占位

文件对象.readlines()

按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

文件对象.readline()

一次读取一行内容

seek函数:

用来移动指针

文件对象.seek(偏移量,起始位置)

起始位置:

0:文件开头

1:当前位置

2:文件结尾

44.文件和文件夹的操作

1.导入os模块

2.使用os模块相关功能

os.函数名()

os.rename(目标文件名,新文件名)      重命名文件

os.remove(目标文件名)                       删除文件

os.mkdir(文件夹名字)                                  创建文件夹

os.rmdir(文件夹名字)                           删除文件夹

os.getcwd()                                         获取当前目录

os.listdir()                                                         获取当前文件目录列表

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

欢乐钓鱼大师加速、暴击内置脚本,直接安装

无需手机root,安装软件即可使用&#xff0c;仅限安卓。 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

从零开始学习Linux(4)----yum和vim

1.Linux软件包管理器yum Linux中我们要进行工具/指令/程序&#xff0c;安装&#xff0c;检查卸载等&#xff0c;需要yum的软件 安装软件的方式&#xff1a; 源代码安装---交叉编译的工具rpm包直接安装yum/apt-get yum是我们Linux预装的一个指令&#xff0c;搜索&#xff0c;下…

claude3国内注册

claude3国内注册 Claude 3 作为大型语言模型的强大之处在于其先进的算法设计和大规模训练数据的应用&#xff0c;能够执行复杂和多样化的任务。以下是 Claude 3 主要的强项&#xff1a; 接近人类的理解能力&#xff1a;Claude 3 能够更加深入地理解文本的含义&#xff0c;包括…

外贸企业邮箱有什么用?如何选择适合的外贸企业邮箱?

外贸公司每天都需要与各个国家的客户打交道&#xff0c;通过邮箱聊天、谈合作。由于语言、文化差异&#xff0c;一个小错误可能会致使业务失败和数据泄漏风险。做为外贸企业的重要沟通工具&#xff0c;企业电子邮件的功效是显而易见的。那样&#xff0c;外贸企业邮箱有什么用&a…

【在本机上部署安装禅道详细操作步骤2024】

1、进入禅道官网&#xff0c;选择开源版进行下载&#xff1a;禅道下载 - 禅道开源项目管理软件 2、根据自身电脑环境选择合适的版本&#xff0c;此处是windows版本&#xff1a; 3、双击打开下载好的.exe安装包-选择安装目录-【Extract】-然后就等着安装完成就行了 4、安装完成…

JavaSE高阶篇-反射

第一部分、Junit单元测试 1&#xff09;介绍 1.概述:Junit是一个单元测试框架,在一定程度上可以代替main方法,可以单独去执行一个方法,测试该方法是否能跑通,但是Junit是第三方工具,所以使用之前需要导入jar包 2&#xff09;Junit的基本使用&#xff08;重点啊&#xff09; 1.…

【jinja2】模板渲染

HTML文件 return render_template(index.html)h1: 一级标题 变粗变大(狗头 <

VSCode断点调试(ROS)

0、安装ros插件 在扩展商店中安装ROS插件&#xff08;Microsoft&#xff09; 1、修改CMakeList.txt # set(CMAKE_BUILD_TYPE "Release") // 注释Release模式 set(CMAKE_BUILD_TYPE "Debug") // 设置为Debug模式 # set(CMAKE_CXX_FLAGS_RELEASE &…

PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性

PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性 什么是PolarDB MySQL 版PolarDB MySQL版体验弹性压测一弹性压测二弹性压测三弹性缩容 操作体验 在体验PolarDB MySQL 版之前&#xff0c;这里先为大家提供一下PolarDB MySQL 版 Serverless评测入口&#xff0c;以供…

五种主流数据库:集合运算

关系型数据库中的表与集合理论中的集合类似&#xff0c;表是由行&#xff08;记录&#xff09;组成的集合。因此&#xff0c;SQL 支持基于数据行的各种集合运算&#xff0c;包括并集运算&#xff08;Union&#xff09;、交集运算&#xff08;Intersect&#xff09;和差集运算&a…

neo4j使用详解(十八、java driver使用及性能优化<高级用法>——最全参考)

Neo4j系列导航&#xff1a; neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 neo4j java Driver等更多 1.依赖引入 <dependency><groupId>org.neo4j.driver</groupId><…

线程池 ThreadPoolExecutor 配置参数详解

《开发语言-Java》 线程池 ThreadPoolExecutor 参数详解 一、引言二、主要内容2.1 核心构造函数2.2 核心线程数2.3 最大线程数2.4 空闲线程存活时间2.5 keepAliveTime 的时间单位2.6 核心线程在空闲时的回收策略2.7 工作队列2.8 线程工厂2.9 拒绝策略 三、总结 一、引言 提到 …

密码学 | 承诺:基本概念

目录 正文 1 承诺的交互 2 承诺的属性 3 硬币抛掷问题 3.1 朴素版方案 3.2 承诺版方案 &#x1f951;源自&#xff1a;https://en.wikipedia.org/wiki/Commitment_scheme &#x1f951;写在前面&#xff1a;英文的承诺是 commitment scheme&#xff0c;否则很难进行…

项目实践---贪吃蛇游戏(游戏的概述)

这里要准备三个文件&#xff1a;1.头文件&#xff08;snake.h&#xff09; 2.测试文件&#xff08;test.c&#xff09; 3.主文件&#xff08;snake.c&#xff09; 贪吃蛇游戏是一个经典的C语言代码实现的项目&#xff0c;大约500行代码。对于大家来说&#xff0c;贪吃蛇都玩过…

如何用个人电脑搭建一台本地服务器,并部署项目到服务器详细教程

服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;它存储、处理网络上80%的数据、信息&#xff0c;因此也被称为网络的灵魂。与普通计算机相比&#xff0c;服务器具有高速CPU运算能力、长时间可靠运行、强大I/O外部数据吞吐能力以及更好的扩展性。 服务器的主要…

【QT进阶】Qt Web混合编程之html、 js的简单交互

往期回顾 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用&#xff08;图文并茂超详细介绍&#xff09;-CSDN博客【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView&#xff08;图文并茂超详细版本&…

NSSCTF Round#22 Reverse个人专项赛 WP

1. ezcrypt&#xff08;史&#xff09; pyinstxtractor.py解包exe&#xff0c;然后pycdc反编译NSSCTF.pyc 得到的源码并不完整&#xff0c;但是重要的部分已经有了&#xff0c;就是一个blowfish加密 但是密钥是crypto.SomeEncode&#xff0c;这并不是字面意义的字符串&#x…

基于弹簧鞘复合纱和迁移学习算法的可穿戴人体重构和智能试衣系统

研究背景 在信息时代和元宇宙的背景下&#xff0c;虚拟服装设计对满足服装行业的个性化需求至关重要。与传统方法不同&#xff0c;虚拟试衣节省时间、方便客户&#xff0c;并提供多样化的款式。准确得测量人体围度并重构出人体的模型是虚拟试衣的关键。为了实现动态人体重构&a…

路径规划 | RRT结合APF算法快速探索随机树结合人工势场法的路径规划算法(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 RRT结合APF算法的matlab代码。地图为可以替换的栅格地图。代码是在复现华中科技大学发表的英文论文的基础上的进一步改进。RRT算法。人工势场算法。 1.原论文方法简介&#xff1a;针对快速探索随机树&#xff08;RRT&…

用 Pytorch 训练一个 Transformer模型

昨天说了一下Transformer架构&#xff0c;今天我们来看看怎么 Pytorch 训练一个Transormer模型&#xff0c;真实训练一个模型是个庞大工程&#xff0c;准备数据、准备硬件等等&#xff0c;我只是做一个简单的实现。因为只是做实验&#xff0c;本地用 CPU 也可以运行。 本文包含…