Python基础入门(持续更新中)

news2025/1/13 12:00:07

 一、发展历程

       Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中单词Python(意为大蟒蛇)作为该编程语言的名字,是因为英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)。后因吉多·范罗苏姆(Guido van Rossum)中的Guido(吉多),与拼音(Gui) 谐音,所以被中国程序员称为“龟叔”。


二、 语言特点

       1.易学习:Python有相对较少的关键字,结构简单,语法明确,学习起来更加简单。

       2.易阅读:Python代码定义的更清晰。

       3.易维护:Python的成功在于它的源代码是相当容易维护的。

       4.丰富库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等。

       5.可移植:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

       6.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

       7.数据库:Python提供所有主要的商业数据库的接口。

       8.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

       9.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。


三、基本知识

1.变量命名

       1)变量可以使用简单字母命名(x、y、z),也可使用具体名称命名(age、carname、total_volume);

        2)变量名必须以字母或下划线字符开头;

        3)变量名称不能以数字开头;

        4)变量名只能包含字母数字字符和下划线(A-z、0-9 和 _);

        5)变量名称区分大小写(age、Age 和 AGE 是三个不同的变量);

        6)变量名不可使用保留关键字命名。


2.关键字段

Python保留关键字

序号关键字字段使用方法

1

and

逻辑判断语句,and左右两边都为真,则判断结果为真,否则都是假。

2

as

with…as…

和with结合使用,主要用于文件的读写操作,省去了关闭文件的麻烦。

import...as ...

和impor结合使用,用于导入模块对模块进行重命名或导入函数对函数重命名。

except结合使用

和except组合使用,将捕获到的异常对象赋值给except。

3

assert

用来在运行中检查程序的正确性,和其他语言一样的作用。assert函数是属于python下的一个函数,也叫作断言函数,它可以用于判断某个表达式的值,若是该值为真,那么程序就能够继续往下执行;反之,Python解释器就会报出AssertionError错误。

4

async

async 用来声明一个函数为异步函数,异步函数的特点是能在函数执行过程中挂起,去执行其他异步函数,等到挂起条件(假设挂起条件是sleep(5))消失后,也就是5秒到了再回来执行。

5

await

await 用来用来声明程序挂起,比如异步程序执行到某一步时需要等待的时间很长,就将此挂起,去执行其他的异步程序。await 后面只能跟异步程序或有__await__属性的对象,因为异步程序与一般程序不同。假设有两个异步函数async a,async b,a中的某一步有await,当程序碰到关键字await b()后,异步程序挂起后去执行另一个异步b程序,就是从函数内部跳出去执行其他函数,当挂起条件消失后,不管b是否执行完,要马上从b程序中跳出来,回到原程序执行原来的操作。如果await后面跟的b函数不是异步函数,那么操作就只能等b执行完再返回,无法在b执行的过程中返回。如果要在b执行完才返回,也就不需要用await关键字了,直接调用b函数就行。所以这就需要await后面跟的是异步函数了。在一个异步函数中,可以不止一次挂起,也就是可以用多个await。

6

break

break语句是用来终止循环语句的,即使哪怕循环条件没有称为false或者序列还没有被完全递归,也会停止循环语句。提示,如果break的是for或while循环,任何对应的循环else块将不执行。

7

class

定义类的关键字,用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。

8

continue

continue语句被用来跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

9

def

用于定义函数或方法。

10

del

删除变量或者序列的值。

11

elif

条件语句 与if else 结合使用。

12

else

条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用。

13

except

包括捕获异常后的操作代码,与try,finally结合使用。

14

finally

异常处理使用关键字,用它可以指定始终执行代码,指定代码在finally里面。

15

for

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

16

from

在python用import或者from…import来导入相应的模块。

17

False

布尔类型的值,表示假,与true对应。

18

global

定义全局标量。

19

if

if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if…块),否则我们处理另外一块语句(称为else…块)。else从句是可选的。

20

import

在Python用import或者from…import来导入相应的模块。

21

in

判断变量是否存在序列中,for…in是另外一个循环语句,它在一序列的对象上递归即逐一使用队列中的每个项目。

22

is

Python中的对象包含三个要素:id,type,value

其中:
id:用来唯一标示一个对象
type:标识对象的类型
value:是对象的值
is:就是用来判断a对象是否就是b对象,是通过id来判断的

==:判断的是a对象的值是否和b对象的值相等,是通过value来判断的

23

lambda

定义匿名函数,提升代码的简洁程度。

24

nonlocal

nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。

25

not

逻辑判断,取反的意思。

26

None

None是一个特殊常量,None和False不同,None不是0。None不是空字符串。None和任何其他数据类型比较永远返回False。None有自己数据类型NoneType。可以将None复制给任何变量,但不能创建其他NoneType对象。

27

or

逻辑判断,or两边有一个为真,判断结果就是真。

28

pass

pass的意思是什么都不要做,作用是为了弥补语法和空定义上的冲突,它的好处体现在代码的编写过程之中,比如你可以先写好软件的整个框架,然后再填好框架内具体函数和class的内容,如果没有pass编译器会报一堆的错误,让整个开发很不流畅。

29

raise

raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。

raise 异常类名称:raise 后带一个异常类名称,表示引发执行类型的异常。

raise 异常类名称(描述信息):在引发指定类型异常的同时,附带异常描述信息。

30

return

python 函数返回值 return,函数中一定要有return返回值才是完整函数。如果你没有python定义函数返回值,会得到一个结果是None对象。

31

try

程序员可以使用try…except语句来处理异常。把通常的语句块放在try块中,而把错误处理的语句放在except块中。

32

True

布尔类型的值,表示真,与false相反。

33

while

while是循环语句一种,while语句有一个可选else从句。

34

with

with它实质是一个控制流语句,with可以用来简化try…finally语句,它的主要用法是实现类_enter_()和_exit_()方法。

35

yield

yield用起来像return,return是用来返回具体的某个值,yield一般与循环一起用,相当于生成了一个容器(常见的就是字典),然后在这个容器里面存放了每次循环以后的值,并且就在那放着,不输出,不返回,等你下次需要他的时候直接取出来用(调用)就行。


3.数据类型

Numbers(数字):int(整数)—123、 float(浮点)—12.3、complex(复数)—2+3j

Bool(布尔):True、False

String(字符串):'123'

List(列表):[1,2,3]

Tuple(元组):(1,2,3)

Dictionary(字典):{1:23}

Set(集合):{1,2,3}

不变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。


4.数据运算

算数运算

A = 3  B = 2

加法

+

A + B = 5

减法

-

A - B = 1

乘法

*

A * B = 6

 除法 

/

A / B = 1.5

余数

A % B = 1

次幂 

**

A ** B = 9

取整

//

A // B = 1

比较运算

等于

==

a == b

不等于

!=

a != b

大于

>

a > b

小于

<

a < b

大于等于

>=

a >= b

小于等于

<=

a <= b

赋值运算

等于赋值

c = a + c

加法赋值

c += a    c = c + a

减法赋值

c -= a    c = c - a

乘法赋值

c *= a    c = c * a

除法赋值

c /= a    c = c / a

取模赋值

c %= a   c = c % a

次幂赋值

c **= a   c = c ** a

取整赋值

c //= a   c = c // a

逻辑运算

A = 15  B = 20

多个条件判断

and

a > 10 and b > 10     返回true

任意条件判断

or

a > 10 or b > 20        返回true

取反条件判断

not

not a > b                    返回true


5.打印输出

1)print()函数用于打印输出。

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

     objects - 复数,表示可以一次输出多个对象。输出多个对象时需要用‘,’ (英文)分隔。

     sep - 用来间隔多个对象,默认值是一个空格。

     end - 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

     file - 要写入的文件对象。

     flush - 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

print(123)  #123  

print('Hello World')  #Hello World  
 
a ,b = 1 ,2
print(a,b) #1 2
 
print('www','baidu','com',sep= '.') #www.baidu.com

for i in '123':
    print(i,end = '*') #1*2*3* 

2)input() 函数接收一个标准输入数据,返回为 string 类型。

input([prompt]) 

   prompt - 提示信息

a = input('请您输入一个数字:')   #输入数据内容123
print(a)                        #123
print(type(a))                  #<class 'str'>数据类型为字符串

6.类型转换

序号

函数

作用

1

int(x)

将x转换成整数类型 int('123')→123

2

float(x)

将 x 转换成浮点数类型 float(123)→123.0

3

complex(real, [,imag])

创建一个复数 complex(1, 2) →(1+2j)

4

str(x)

将 x 转换为字符串 str(123)→'123'

5list(x)将序列x 转换为元组 list({1,2,3})→[1,2,3]
6

tuple(x)

将序列 x 转换为元组 tuple([1,2,3])→(1,2,3)
7set(x)将序列 x 转换为集合 set([1,2,3])→{1,2,3}
8dict(x)

创建一个字典。 序列x必须是元组。 dict(((1,2),))→{1: 2}

9

repr(x)

将 x 转换为表达式字符串 repr('1\t2\n3')→'1\t2\n3'

10

eval(str)

计算在字符串有效 Python 表达式,并返回一个对象 。eval(2+3)→5

11

chr(x)

主要用来表示ascii码对应的序号 chr(97)→'a'

12

ord(x)

主要用来返回对应字符的ascii码 ord('a')→97

13

bin(x)

将一个整数 x 转换为一个二进制的字符串 bin(123) →0b1111011

14

oct(x)

将一个整数 x 转换为一个八进制的字符串 oct(123)→0o173

15

hex(x)

将一个整数 x 转换为一个十六进制字符串 oct(123)→0x7b


7.字符转义

序号

字符

用法

1

\a

系统响铃声

2

\n

换行符,将光标移到下一行开头。

3

\r

回车符,将光标移到当前行开头。

4

\f

翻页符,将光标移到下页开头。

5

\t

水平制表符,也即Tab键,一般相当于四个空格

6

\v

纵向制表符

7

\b

退格(Backspace),将光标位置前移并覆盖删除前一个字符。

8

\\

代表一个反斜杠 \

9

\'

代表一个单引号 ‘

10

\"

代表一个双引号 ‘’

11

\?

代表一个问号 ?

12

\0

代表一个空字符

13

\

在字符串行尾,即一行未完,转到下一行继续写


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

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

相关文章

CANoe-以太网软硬件网络自动映射的问题

以太网软硬件网络自动映射的问题 当我们设置CANoe以太网模式为Network-based access模式时 我们需要在CANoe硬件里配置segment,具体内容请参考文章《如何配置CANoe Network-based access模式的以太网网络拓扑》 有时我们图省事,配置的segment默认名称是什么,我们也不管,也…

UVM如何处理out-of-order乱序传输

文章目录前言1、基本思路2、支持乱序传输的sequence3、支持乱序传输的Driver总结前言 乱序传输(out-of-order)是指在协议中&#xff0c;后发出去的req&#xff0c;支持先回resp&#xff0c;通常通过ID来保证req和resp之间的关系。很多协议支持乱序传输&#xff0c;例如AXI4。本…

我们简单的new了一个对象,JVM都做了哪些贡献?

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章是关于CAS的介绍以及在我们new对象时&#xff0c;Java虚拟机会为我们做些什么贡献。 本篇文章记录的基础知识&#xff0c;适合在学Java的小白&#xff0c;也适合复…

【C++笔试强训】第九天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6; &…

基于骨骼的动作识别:PoseConv3D

Revisiting Skeleton-based Action Recognition解读摘要1. 简介2. Related Work2.1 基于3D-CNN的rgb视频动作识别2.2 基于GCN的骨骼动作识别2.3 基于CNN的骨骼动作识别3. Framework3.1 Pose Extraction3.2 From 2D Poses to 3D Heatmap Volumes3.3 基于骨骼的动作识别3D-CNN3.3…

智能的逻辑与理性的逻辑是不同的逻辑

1.世界是由事实和价值共同组成的1.1 事实由对象、事态及其联系&#xff08;如语言&#xff09;构成1.2 价值是事实在实践中的作用和效果构成1.3 事实中存在着决定论&#xff0c;价值里包含有自由意志1.3.1 事实反映有无&#xff0c;价值反映好坏1.4 每一个事实都具有变价值&…

8.2 从堆中绕过SafeS.E.H

一、实验环境 操作系统&#xff1a;windows XP SP2&#xff08;关闭DEP&#xff09; 软件版本&#xff1a;VS2008&#xff08;release&#xff09;、原版OD&#xff08;实时调试&#xff09; 二、实验代码 #include <stdafx.h> #include <stdlib.h> #include <…

计算机操作系统引论(操作系统)

目录 一、操作系统的目标 二、操作系统的作用 三、操作系统的基本特性 四、操作系统的主要功能 五、操作系统的结构设计 一、操作系统的目标 操作系统&#xff08;Operating System&#xff0c;OS&#xff09;是计算机硬件的第一层软件&#xff0c;是计算机必备配置的最基…

接口自动化测试(二)—— Postman实现接口测试

其他 接口自动化测试 知识参考&#xff1a;接口自动化测试 目录 一、Postman介绍和安装 1、简介 2、安装 3、安装Postman插件newman 二、Postman基本用法 1、案例一 2、案例二 三、Postman高级用法 1、管理测试用例Collections 1.1、创建 collections 1.2、创建 用…

libusb系列-002-Windows下libusb源码编译

libusb系列-002-Windows下libusb源码编译 文章目录libusb系列-002-Windows下libusb源码编译摘要Windows下编译libusb库下载源码进入msvc目录选择对应的项目工程编译查看编译好的库文件关键字&#xff1a; vs、 编译、 Qt、 libusb、 windows内容背景&#xff1a; 最近项目终于切…

从 0 到 1 落地前端工程化

你将获得 初识&#xff1a;总结前端工程化技能图谱 了解&#xff1a;梳理前端工程化落地流程 掌握&#xff1a;搭建前端工程化基建项目 提高&#xff1a;实战前端工程化解决方案 作者介绍 JowayYoung&#xff0c;资深前端工程师&#xff0c;目前就职于网易互动娱乐事业群&…

建立私人知识网站 cpolar轻松做到1 (部署DokuWiki)

维基百科&#xff08;wiki&#xff09;相信大家都有所耳闻&#xff0c;作为全球最有名的百科知识搜索网站&#xff0c;很多不常见的知识点都能在这上面搜索到&#xff0c;而维基百科能够成功的原因&#xff0c;就是可以编辑的和修订的功能&#xff0c;让维基百科能够收到各领域…

vue学习笔记——简单入门总结(一)

Vue学习笔记 文章目录Vue学习笔记1. 学习vue的准备1.1. vue简介:1.2. vue特点:1.2.1. 组件化&#xff1a;1.2.1. 声明式&#xff1a;1.2. vue的引入1.2.1. 直接引入&#xff1a;1.2.2. 脚手架构建vue项目&#xff1a;1.2.3&#xff1a;vue开发插件安装&#xff1a;2. vue的简单…

apache服务web页面执行shell脚本

首先安装apache服务 yum -y install httpd 如下介绍两种执行的方式 方式一、url直接传参的方式 #cat /var/www/cgi-bin/shell #!/bin/sh printf "Content-Type: text/plain\n\n" your_commands_here传参的动作 http://172.16.61.119:8098/cgi-bin/shell?pwd在…

STM32使用寄存器开发底层驱动学习(USART+DMA)

目录学习资料下载任务USART的DMA功能发送数据DMA非中断模式接收USART数据。DMA中断模式接收USART数据总结学习资料下载 在本文学习中会用到如下的文档资料&#xff0c;没有的朋友先下载。 工程模板 Cortex M3权威指南&#xff08;中文&#xff09; &#xff1a;本文简称为《…

1024程序节|你知道老师上课随机点名是怎么实现的吗

个人主页&#xff1a;天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主 目录 前言 随机点名 搭建主体框架 简述 执行代码 添加功能 块级元素随机输出姓名 Math.random() Math.round() 按钮控制开始/结束 onclick() clearInterval() 简述 完整代码 执行结果 片…

I/O复用--浅谈epoll

我们聊了聊select和poll知道&#xff1a; 它们都是采取轮询的方式查找是否有就绪描述符。都有数据结构从用户态拷贝到内核态&#xff0c;内核态拷贝到用户态这个过程。 为了针对许多大量连接&#xff0c;高并发的的场景下大量的资源消耗&#xff0c;效率低的问题&#xff0c;这…

网络安全实战:记一次比较完整的靶机渗透

0x01信息搜集 nmap -sC -sV -p- -A 10.10.10.123 -T4 -oA nmap_friendzone访问80端口的http服务只发现了一个域名。 0x02 DNS区域传输 因为我们前面扫描的时候发现了53端口是开着一个dns服务的&#xff0c;所以尝试使用friendzoneportal.red进行axfr&#xff0c;它的具体含…

《软件测试》实验2:嵌入式软件测试实验报告

文章目录实验目的温度控制器需求文档及测试要求环境搭建实验内容温度采集处理功能测试加热棒输出电压测试散热风扇温度传感器输入接口&#xff08;Senser_JK&#xff09;控制加热棒输出接口&#xff08;Heater_JK&#xff09;控制散热风扇输出接口&#xff08;Fan_JK&#xff0…

目标检测 YOLOv5 - 模型推理预处理 letterbox

目标检测 YOLOv5 - 模型推理预处理 letterbox flyfish 版本&#xff1a;YOLOv5 6.2 假如图片大小是1080 * 1920 &#xff08;height * width &#xff09; width 1920 height 1080 当模型输入是 640 * 640时 shapes (1080, 1920), (0.33, 0.33), (0.0, 140.0) 640/ 1920…