Python 入门教程详细版全集(两周速成)

一、初始Python

打开CMD(命令提示符)程序,输入Python回车。然后,在里面输入代码回车即可立即执行。

 Tip1:找不到“命令提示符”程序在哪里?

使用快捷键:win + r;打开运行框,输入cmd后回车即可打开命令提示符程序

Tip2:安装python的时候,务必勾选:add python 3.10to PATH的选项;

二、常见的值类型

Python中常用的有6种值(数据)的类型

字符串
字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串;

字符串需要用双引号(")包围起来被引号包围起来的,被引号包围起来的,都是字符串。

注释:在程序代码中对程序代码进行解释说明的文字。

# 我是单行注释
print("Hello World")
# 注意:#号和注释内容一般建议以一个空格隔开
# 多行注释:以一对三个双引号引起来("""注释内容""")来解释说明一段代码的作用使用方法
"""HelloWorld!
"""
print("Hello")
print("World")
print("!")

字符串在Python中有多种定义形式:

单引号定义法:name=‘Lotus’
双引号定义法:name ="Lotus"
三引号定义法:name ="""Lotus""”

三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串
不使用变量接收它,就可以作为多行注释使用.

字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如:

print("hello"+"world")
# 输出:hello world

面量和变量或变量和变量之间会使用拼接,如

name = 'lotus'
print("my name :" + name + ", hello world")
#输出:my name :lotus, hello world

字符串格式化

% 表示:我要占位
s表示:将变量变成字符串放入占位的地方
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置;多个变量占位,变量要用括号括起来,并按照占位的顺序填入。

字符串格式化-数字精度控制

m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效·.n,控制小数点精度,要求是数字,会进行小数的四舍五入示例:
%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
%5.2f:表示将宽度控制为5,将小数点精度设置为2
小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:[空格][空格111.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为.35

 

三、变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的。

变量的定义格式  变量名称 = 变量的值

标识符命名规则-内容限定

标识符命名中,只允许出现:英文、中文(不推荐使用中文)、数字(数字不可以开头)、下划线

#定义一个变量,用来记录钱包余额money=50#通过print语句,输出变量记录的内容
#格式:print(内容1,内容2,内容3,.....)
print("钱包还有:” ,money)

 变量为两类:局部变量和全局变量

局部变量指的是变量的作用范围(变量在哪里可用,在哪里不可用)

所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效

所谓全局变量,指的是在函数体内、外都能生效的变量

# 定义全局变量a
num =100
def testA():print(num)#访问全局变量num,并打印变量num存储的数据def testB():print(num)#访问全局变量num,并打印变量num存储的数据testA()
testB()
#100
# 100

四、运算符

 算术(数学)运算符

赋值运算符

复合赋值运算符

 比较运算符

布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到

五、常用语句 

type()语句的使用方式
1.在print语句中,直接输出类型信息:

print(type(666))
print(type(11.345))
"""输出
<class 'int'>
<class 'float'>
"""

2.用变量存储type()的结果(返回值):

string_type =type("HELLO")
int_type =typě(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float type)
"""<class 'str'>
<class 'int'>
<class 'float'>
"""

常见的转换语句



 

input语句(函数)

数据输出:print           数据输入:input

使用一个变量接收(存储)input语句获取的键盘输入数据即可

print("请告诉我你的名字")
name = input()
print("我知道了,你是:%s" %name)
# 请告诉我你是谁
# lotus
# 我知道了,你是:lotus

Tip3:无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型
 

while循环语句

1.while的条件需得到布尔类型,True表示继续循环,False表示结束循环
2.需要设置循环终止的条件,如i+=1配合i<100,就能确保100次后停止,否则将无限循环
3.空格缩进和if判断一样,都需要设置

i = 1
while i <= 100:print(f"{i}")

for循环语句
除了while循环语句外,Python同样提供了for循环语句。两者能完成的功能基本差不多,但仍有一些区别:
·while循环的循环条件是自定义的,自行控制循环条件
for循环是一种”轮询”机制,是对一批内容进行”逐个处理”for循环语句,本质上是遍历:序列类型

#定义字符串name
name ="itheima'
# for循环处理字符串
for x in name:
print(x)

range语句

语法1:
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0,1,2,3,4]

语法2:
range(num1,num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)如,range(5,10)取得的数据是:[5,6,7,8,9]
语法3:
range(num1,num2,step)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5,10,2)取得的数据是:[5,7,9]

continue语句

continue关键字用于:中断本次循环,直接进入下一次循环continue可以用于:for循环和while循环,效果一致

foriin range(1,100):语句 1语句 2
#在循环内,遇到continue就结束当次循环,进行下一次所以,语句2是不会执行的。

六、函数

如果将函数定义为class(类)的成员,那么函数会称之为:方法

# 函数的定义:
def 函数名(传入参数):函数体return 返回值
函数的调用:函数名(参数)

 传入参数的功能是在函数进行计算的时候,接受外部(调用付)提供的数据

#实现1+2相加的函数
def add():result=1+2print(f"1 + 2的结果是:{result}")#定义实现两数相加的函数
def add(x, y):result=x+yprint(f"{x}+{y}的结果是:{result}")
# 调用函数add(5,6)

函数嵌套

#定义函数func_b
def func_b():print("---2---")
#定义函数func_a,并在内部调用func_b
def func_a():print("---1---")
#嵌套调用func_bfunc_b()print("---3---")
# 调用函数func_a""" 
---1---
---2---
---3---
"""

函数多个返回值

def test return():return 1,2x,y = text_return ()
print(x)   # 结果1
print(y)   # 结果2
# 按照返回值的顺序,写对应顺序的多个变量接收即可
# 变量之间用逗号隔开
# 支持不同类型的数据return

位置参数

注意:
传递的参数和定义的参数的顺序及个数必须一致

位置传递

注意:
传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位
置传递

def user info(*args):print(args)
#('TOM',)
user_info('TOM')
#('TOM',18)
user info('TOM',18)

关键字参数:函数调用时通过“键=值”形式传递参数
作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求

注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

关键字传递:

参数是“键=值”形式的形式的情况下,所有的“键=值”都会被kwargs接受,同时会根据“键=值”组成字典.

def user info(**kwargs):print(kwargs)
#'name':TOM','age':18,id':110}
user info(name='TOM',age=18,id=110)

缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).作用:当调用函数时没有传递参数,就会使用默认是用缺省参数对应的值.

注意:
函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值

不定长参数
不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景作用:当调用函数时不确定参数个数时,可以使用不定长参数
不定长参数的类型:
①位置传递
②关键字传递

函数作为参数传递

def test_func(compute):
result=compute(1,2)
print(result)
def compute(x,y):
return x+y
test func(compute)
# 函数compute,作为参数,传入了testfunc函数中使用。
# 结果:3

test_func需要一个函数作为参数传入,这个函数需要接收2个数字进行计算,计算逻辑由这个被传入函数决定compute函数接收2个数字对其进行计算,compute函数作为参数,传递给了testfunc函数使用
最终,在test func函数内部,由传入的compute函数,完成了对数字的计算操作
所以,这是一种,计算逻辑的传递,而非数据的传递
.
就像上述代码那样,不仅仅是相加,相见、相除
等任何逻辑都可以自行定义并作为函数传入。

 None类型
如果函数没有使用return语句返回数据,那么函数有返回值是None;

Python中有一个特殊的字面量:None,其类型是:<class'WoneType)>无返回值的函数,实际上就是返回了:None这个字面量。

def say_he11o():print("He11o...")
#使用变量接收say_he11o函数的返回值result]= say_he11o()
#打印返回值
print(result)
#打印返回值类型
print(type(result))
# 结果None
#结果<class'NoneType'>#None可以主动使用return返回,效果等同于不写return语句:
def say he1lo():print("He71o...")return None
#使用变量接收say_hel1o函数的返回值
result=say_he1lo()
#打印返回值
print(result)
# 结果None

lambda匿名函数


七、数据容器


一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等.

数据容器根据特点的不同,如:
·是否支持重复元素、是否可以修改、是否有序,等分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

列表的定义:

#嵌套列表
my_1ist =[1,2,3]日[4,5,6]]
print(my_list)
print(type(my list))
# [[1,2,3],[4,5,6]]
# <class 'list'>

1.列表的查询功能

2.修改特定位置(索引)的元素值:

3.插入元素

4.追加元素

1)语法:列表.append;

2)   语法:列表.extend;

5.删除元素

语法:列表.remove(元素)

6.清空列表列表.clear()

7.统计元素个数len(列表)

元组:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

#定义3个元素的元组t1=(1,'Hello',True)
#定义1个元素的元组
t2=('Hello',) #注意,必须带有逗号,否则不是元组类型# 注意:元组只有一个数据,这个数据后面要添加逗号

元组的相关操作

字符串:无法修改的数据容器。

下标引索

字典

数据容器的通用统计功能

通用类型转换

八、文件

文件的操作步骤

① 打开文件
② 读写文件
③ 关闭文件

注意:可以只打开和关闭文件,不进行任何读写

open()打开函数

mode常用的三种基础访问模式

read 函数

for循环读取文件行

for line in open("python.txt","r"):print(line)
# 每一个line临时变量,就记录了文件的一行数据

close()关闭文件对象

f= open("python.txt","r")
f.close()
# 最后通过close,关闭文件对象,也就是关闭对文件的占用
# 如果不调用close,同时程序没有停止运行,那么这个文件将一直被python程序占用。

with open 语法

with open("python.txt", "r") as f:f.readlines()
# 通过在with open的语句块中对文件进行操作
#可以在操作完成后自动关闭close文件,避免遗忘掉close方法

九、异常

基本语法:

try:可能发生错误的代码
except:如果出现异常执行的代码

 

捕获指定的异常

try:print(name)
except NameError as e:print('name变量名称未定义错误')
# 捕获多个异常
# 当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元组的方式进行书写。
try:print(1/0)
except (NameError,ZeroDivisionError):print("ZeroDivision错误...)

十、对象

创建类对象的语法: 对象=类名称()

成员变量和成员方法(函数)

self关键字是成员方法定义的时候,必须填写的。

class student:name =None #学生的姓名age = None #学生的年龄def say hi(self):print(f"Hi大家好,我是{self.name}")
#self关键字是成员方法定义的时候,必须填写的。
# 设计一个闹钟类
class Clock:id = None #序列化price = None #价格def ring(self):import winsoundwinsound.Beep(2000,3000)
#构建2个闹钟对象并让其工作
clock1=Clock()
clock1.id ="003032"
print(f"闹钟ID:{clock1.id},价格:{clock1.price}")
clock1.ring()

Python类可以使用:_init()方法,称之为构造方法。

在创建类对象(构造类)的时候,会自动执行。
在创建类对象(构造类)的时候,将传入参数自动传递给init方法使用。

class student:name = Noneage = Nonetel = Nonedefinit_(self,name,age,tel):self.name =nameself.age = ageprint("student")
stu=student("周杰轮”,31,"18500006666")

内置方法(魔术方法)

1._init_ 构造方法    2._str_字符串方法  3._it_ 小于、大于符号比较

4._le_小于等于、大于等于符号比较  5._eq_=符号比较

面向对象的三大特性

封装 继承 多态

私有成员

私有成员变量:变量名以开头(2个下划线)

私有成员方法:方法名以开头(2个下划线)

私有成员无法被类对象使用,但是可以被其它的成员使用。

class Phone:——current voltage =0.5 #当前手机运行电压def _keep_single_core(self):print("让CPU以单核模式运行”)def ca11 by_5g(se1f):if self. current_voltage >=1:print("5g通话已开启")else:self._keep_single_core()print("电量不足,无法使用5g通话,并已设置为单核运行进行省电。")

继承

单继承

多继承

多个父类中,如果有同名的成员,那么默认以继承顺序(从左到右)为优先级。

class Phone:IMEI= None#序列号producer = None#厂商def ca11_by_5g(se1f):print("5g通话”)
class NFCReader:nfc_type =“第五代"producer = "HM"def read_card(self):print("该取NFC卡")def write_card(self):print("写入NFC卡")
class Remotecontrol:rc_type ="红外通控”def control(self):print("红外暹控开启")
c1ass MyPhone(phone, NFcReader, Remotecontro]):pass

复写::在子类中重新定义同名的属性或方法即可,

调用父类同名成员

方法1:
·调用父类成员
使用成员变量:父类名,成员变量
使用成员方法:父类名.成员方法(self)
方式2:
使用super()调用父类成员
使用成员变量:super().成员变量
使用成员方法:super().成员方法()

Union 类型

使用Union[类型,…, 类型],可以定义联合类型注解

多态

多态,指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态

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

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

相关文章

chat2-Client发送数据给Server

本文档描述了Client发送消息给Server&#xff0c; Server端打印接收的消息 一、Client 1.1.客户端的类Client.java中添加如下的start()方法 (表示启动客户端功能的方法)&#xff0c;并调用 /**start方法&#xff0c;作为客户端开始工作的方法*/ public void start(){ …

自然语言处理(NLP)—— 神经网络语言处理

1. 总体原则 1.1 深度神经网络&#xff08;Deep Neural Network&#xff09;的训练过程 下图展示了自然语言处理&#xff08;NLP&#xff09;领域内使用的深度神经网络&#xff08;Deep Neural Network&#xff09;的训练过程的简化图。 在神经网络的NLP领域&#xff1a; 语料…

深入解析Java中List和Map的多层嵌套与拆分

深入解析Java中List和Map的多层嵌套与拆分 深入解析Java中List和Map的多层嵌套与拆分技巧 &#x1f4dd;摘要引言正文内容什么是嵌套数据结构&#xff1f;例子&#xff1a; 遍历嵌套List和Map遍历嵌套List遍历嵌套Map 拆分嵌套数据结构拆分嵌套List拆分嵌套Map &#x1f914; Q…

排序-希尔排序

介绍 希尔排序属于那种没有了解过的直接看代码一脸懵逼的&#xff0c; 所以同学们尽量不要直接看代码&#xff0c;仔细阅读本篇博客内容。 插入排序本来算是一个低效排序&#xff0c; 一次只可以挪动一个数据&#xff0c; 但是&#xff0c;它的强来了&#xff01;&#xff01…

网吧|基于SprinBoot+vue的网吧管理系统(源码+数据库+文档)

网吧管理系统 目录 基于SprinBootvue的网吧管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员功能模块 2 网管功能模块 3 会员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#…

Arduino 按钮及弹跳

所需元件 可插入面包板的按钮1个 220Ω电阻1个 10kΩ电阻1个 3mm或5mm LED 1个 面包板1块 Arduino Uno开发板1块 面包板连接线数条 使用外接电阻 将5V接到按钮&#xff0c;按钮的另一端串联1个10kΩ电阻再接地&#xff0c;这样的接法被称为下拉电阻(pull-down resistor)。若测…

【30天精通Prometheus:一站式监控实战指南】第14天:jmx_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

【LeetCode算法】第104题:二叉树的最大深度

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;二叉树的先序遍历。首先判断根节点是否是空&#xff0c;其次判断根节点是否是叶子节点&#xff0c;再者递归获取左子树的深度、右子树的深度&#xff0c;最后返回左子…

【Mac】Lightroom Classic 2024(LrC 2024中文版) v13.1安装教程

软件介绍 Lightroom Classic 2024 for Mac是一款功能强大的照片编辑和组织软件&#xff0c;专为专业摄影师和爱好者设计。它提供了一系列工具和功能来增强和管理您的数码照片。Lightroom Classic 2024在照片组织和管理方面进行了重大改进。它新增了一个智能化的“发现”面板&a…

1. MySQL 数据库的基本操作

文章目录 【 1. SQL 的书写规则 】大小写规则常量的表示注释 【 2. RDBMS 术语 】Table 表Filed 域/字段Column 列Record 记录NULL 空值Constraint 约束数据的完整性范式 【 3. 数据库基本操作函数 】3.1 SHOW DATABASES 显示数据库3.2 CREATE DATABASE 创建数据库3.3 ALTER DA…

回炉重造java----JUC(第一天)

目录 JUC前置知识①进程和线程的区别&#xff1f;②并行和并发的区别&#xff1f;③异步调用和同步调用的区别&#xff1f;④创建线程的方法⑤线程的上下文切换⑥TimeUtil⑦Interrupt⑧如何在一个线程中终止另外一个线程&#xff1f;⑨线程的状态共享模型之管程 阻塞式&#x…

LLVM后端__llc中值定义信息的查询方法示例

关于LiveIntervals pass中相关数据结构的含义&#xff0c;在寄存器分配前置分析(5.1) - LiveInterval这篇博客中已经做了清晰的讲解&#xff0c;此处不再赘述&#xff0c;本文主要讲解值定义信息VNInfo的使用方法和注意事项。 1. VNInfo含义 在LLVM的源码中&#xff0c;VNInf…

视频汇聚EasyCVR综合安防平台对接GA/T1400公安视图库及应用方案

随着科技的不断进步&#xff0c;视频监控系统在公共安全领域发挥着越来越重要的作用。GA/T1400公安视图库作为公安视频图像信息应用系统的标准&#xff0c;为视频监控系统的对接提供了统一的规范和技术要求。 GA/T1400标准的应用范围广泛&#xff0c;涵盖了公安系统的视频图像信…

图解大模型分布式并行各种通信原语

背景 在分布式集群上执行大模型任务时候&#xff0c;往往使用到数据并行&#xff0c;流水线并行&#xff0c;张量并行等技术&#xff0c;这些技术本质上也就是对数据进行各种方案的切分&#xff0c;然后放到不同的节点上运算。不同节点在计算的过程中需要对数据分发或者同步等…

【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 2.1 研究背景 2.2 研究现状 03 研究区域与数据集 3.1 研究区域 3.2 研究数据 04 研究方法 4.1 趋势分析 4.2 残差趋势分析 4.3 偏相关 4.4 生态系统服务评价 4.5 约束线的定义和提取 05 研究结果 5.1 植被…

秒杀基本功能开发(不考虑高并发情况)

文章目录 1.显示秒杀状态1.controller修改GoodsController.java的toDetail方法&#xff0c;响应秒杀状态和秒杀剩余时间 2.前端1.goodsDetail.html 图片下面添加一行秒杀开始时间2.goodsDetail.html 添加计时器js代码 3.测试1.秒杀进行中2.修改db的秒杀开始时间为明天3.出现秒杀…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台&#xff1a;windows 软件&#xff1a;vscode 语言&#xff1a;rust 库&#xff1a;iced、iced_aw 概述 本篇构建了这样的一个实例&#xff0c;可以动态修改UI的主题&#xff0c;通过菜单栏来选择预设的自定义主题和官方主题&#…

python列表的扩展操作

列表的扩展操作 zip() 函数 我们先学习 zip() 函数&#xff0c;将排名与分数挂钩。 还记得期中考试的顺序排名和分数吗&#xff1f;我们把排名放在了列表 midterm_rank 中&#xff0c;把分数放在了 scores 中。不过当时 scores 并没有排序&#xff0c;我们要对数据进行预处理…

深入理解文件系统和日志分析

文件是存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区&#xff0c;每个扇区的大小是512字节。 inode&#xff1a;存储元信息&#xff08;包括文件的属性&#xff0c;权限&#xff0c;创建者&#xff0c;创建日期等等&#xff09; block&#xff1a;块&#xff0c;连续…