python基础知识总汇

Python基础:Hello World!

Python命令行

假设你已经安装好了Python, 那么在命令提示符输入:

python

将直接进入python。然后在命令行提示符>>>后面输入:

print(‘Hello World!’)

可以看到,随后在屏幕上输出:

print是一个常用函数,其功能就是输出括号中得字符串。

(在Python 2.x中,print还可以是一个关键字,可写成print ‘Hello World!’,但这在3.x中行不通)
人工智能,深度学习,都在这学习,欢迎加入python学习交流qq群457(A)012(A)314(A)去掉字母分享我精心准备的Python学习资料0基础到进阶!希望你们在学习Python道路上少走弯路!加油!机器学习…

写一段小程序

另一个使用Python的方法,是写一个Python程序。用文本编辑器写一个.py结尾的文件,比如说hello.py

在hello.py中写入如下,并保存:

print(‘Hello World!’)

退出文本编辑器,然后在命令行输入:

$python hello.py

来运行hello.py。可以看到Python随后输出

Hello World!

Python基础: 基本数据类型

变量不需要声明

Python的变量不需要声明,你可以直接输入:

那么你的内存里就有了一个变量a, 它的值是10,它的类型是integer (整数)。 在此之前你不需要做什么特别的声明,而数据类型是Python自动决定的。

print(a)>>>print(type(a))

那么会有如下输出:

10

这里,我们学到一个内置函数type(), 用以查询变量的类型。

回收变量名

如果你想让a存储不同的数据,你不需要删除原有变量就可以直接赋值。

a = 1.3>>>print(a,type(a))

会有如下输出

1.3

我们看到print的另一个用法,也就是print后跟多个输出,以逗号分隔。

基本数据类型

a=10# int 整数

a=1.3# float 浮点数

a=True # 真值 (True/False)

a=‘Hello!’ # 字符串。字符串也可以用双引号。

以上是最常用的数据类型。此外还有分数,字符,复数等其他类型,有兴趣的可以学习一下。

变量不需要声明,不需要删除,可以直接回收使用。

type(): 查询数据类型

整数,浮点数,真值,字符串

Python基础:序列

sequence 序列

sequence(序列)是一组有顺序的元素的集合

(严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素)

序列可以包含一个或多个元素,也可以没有任何元素。

我们之前所说的基本数据类型,都可以作为序列的元素。元素还可以是另一个序列,以及我们以后要介绍的其他对象。

序列有两种:tuple(定值表; 也有翻译为元组) 和 list (表)>>>s1 = (2, 1.3, ‘love’, 5.6, 9, 12, False)# s1是一个tuple>>>s2 = [True, 5, ‘smile’]# s2是一个list>>>print(s1,type(s1))>>>print(s2,type(s2))

tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。

一个序列作为另一个序列的元素

s3 = [1,[3,4,5]]空序列>>>s4 = []

元素的引用

序列元素的下标从0开始:

print(s1[0])>>>print(s2[2])>>>print(s3[1][2])

由于list的元素可变更,你可以对list的某个元素赋值:

s2[1] = 3.0>>>print(s2)

如果你对tuple做这样的操作,会得到错误提示。

所以,可以看到,序列的引用通过s[]实现, int为下标

其他引用方式

范围引用: 基本样式[下限:上限:步长]

print(s1[:5])# 从开始到下标4 (下标5的元素 不包括在内)>>>print(s1[2:])# 从下标2到最后>>>print(s1[0:5:2])# 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素)>>>print(s1[2:0:-1])# 从下标2到下标1

从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。

尾部元素引用

print(s1[-1])# 序列最后一个元素>>>print(s1[-3])# 序列倒数第三个元素同样,如果s1[0:-1], 那么最后一个元素不会被引用 (再一次,不包括上限元素本身)

字符串是元组

字符串是一种特殊的元组,因此可以执行元组的相关操作。

str = ‘abcdef’

print(str[2:4])

tuple元素不可变,list元素可变

序列的引用 s[2], s[1:8:2]

字符串是一种tuple

Python基础04 运算

数学运算

print 1+9# 加法

print 1.3-4# 减法

print 3*5# 乘法

print 4.5/1.5# 除法

print 3**2# 乘方

print 10%3# 求余数

判断

判断是真还是假,返回True/False

print 5==6# =, 相等

print 8.0!=8.0# !=, 不等

print 3

print 4>5, 4>=0# >, 大于; >=, 大于等于

print 5 in [1,3,5]# 5是list [1,3,5]的一个元素

(还有is, is not等, 暂时不深入)

逻辑运算

True/False之间的运算

print True and True, True and False# and, “与”运算, 两者都为真才是真

print True or False# or, '或’运算, 其中之一为真即为真

print not True# not, “非”运算, 取反

可以和上一部分结合做一些练习,比如:

print 5==6 or 3>=3

数学+, -, *, /, **, %

判断==, !=, >, >=,

逻辑and, or, not

Python基础:缩进和选择

缩进

人工智能,深度学习,都在这学习,欢迎加入python学习交流qq群457(A)012(A)314(A)去掉字母分享我精心准备的Python学习资料0基础到进阶!希望你们在学习Python道路上少走弯路!加油!机器学习…

Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块。

先看C语言的表达方式(注意,这是C,不是Python!)

image

如果i > 0的话,我们将进行括号中所包括的两个赋值操作。括号中包含的就是块操作,它隶属于if。

在Python中,同样的目的,这段话是这样的

在Python中, 去掉了i > 0周围的括号,去除了每个语句句尾的分号,表示块的花括号也消失了。

多出来了if …之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格的缩进。通过缩进,Python识别出这两个语句是隶属于if。

Python这样设计的理由纯粹是为了程序好看。

if语句

写一个完整的程序,命名为ifDemo.py。这个程序用于实现if结构。

$python ifDemo.py# 运行

程序运行到if的时候,条件为True,因此执行x = x+1,。

print x语句没有缩进,那么就是if之外。

如果将第一句改成i = -1,那么if遇到假值 (False), x = x+1隶属于if, 这一句跳过。 print x没有缩进,是if之外,不跳过,继续执行。

这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到。强制缩进增强了程序的可读性。

复杂一些的if选择:

image

这里有三个块,分别属于if, elif, else引领。

Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。

通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。

整个if可以放在另一个if语句中,也就是if结构的嵌套使用:

image

if i > 2 后面的块相对于该if缩进了四个空格,以表明其隶属于该if,而不是外层的if。

if语句之后的冒号

以四个空格的缩进来表示隶属关系, Python中不能随意缩进

if :statementelif :statementelif :statementelse:statement

Python基础: 函数

函数最重要的目的是方便我们重复使用相同的一段程序。

将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。

函数的定义

首先,我们要定义一个函数, 以说明这个函数的功能。

defsquare_sum(a,b): c = a2 + b2returnc

这个函数的功能是求两个数的平方和。

首先,def,这个关键字通知python:我在定义一个函数。square_sum是函数名。

括号中的a, b是函数的参数,是对函数的输入。参数可以有多个,也可以完全没有(但括号要保留)。

我们已经在循环和选择中见过冒号和缩进来表示的隶属关系。

c = a2 + b2# 这一句是函数内部进行的运算

return c# 返回c的值,也就是输出的功能。Python的函数允许不返回值,也就是不用return。

return可以返回多个值,以逗号分隔。相当于返回一个tuple(定值表)。

return a,b,c# 相当于 return (a,b,c)

在Python中,当程序执行到return的时候,程序将停止执行函数内余下的语句。return并不是必须的,当没有return, 或者return后面没有返回值时,函数将自动返回None。None是Python中的一个特别的数据类型,用来表示什么都没有,相当于C中的NULL。None多用于关键字参数传递的默认值。

函数调用和参数传递

定义过函数后,就可以在后面程序中使用这一函数

printsquare_sum(3,4)

Python通过位置,知道3对应的是函数定义中的第一个参数a, 4对应第二个参数b,然后把参数传递给函数square_sum。

(Python有丰富的参数传递方式,还有关键字传递、表传递、字典传递等,基础教程将只涉及位置传递)

函数经过运算,返回值25, 这个25被print打印出来。

我们再看下面两个例子

image

第一个例子,我们将一个整数变量传递给函数,函数对它进行操作,但原整数变量a不发生变化。

第二个例子,我们将一个表传递给函数,函数进行操作,原来的表b发生变化。

对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为值传递)

但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。 (我们称此为指针传递)

Python基础: 面向对象的进一步拓展

调用类的其它信息

上一讲中提到,在定义方法时,必须有self这一参数。这个参数表示某个对象。对象拥有类的所有性质,那么我们可以通过self,调用类属性。

image

这里有一个类属性laugh。在方法show_laugh()中,通过self.laugh,调用了该属性的值。

还可以用相同的方式调用其它方法。方法show_laugh(),在方法laugh_100th中()被调用。

通过对象可以修改类属性值。但这是危险的。类属性被所有同一类及其子类的对象共享。类属性值的改变会影响所有的对象。

init()方法

init()是一个特殊方法(special method)。Python有一些特殊方法。Python会特殊的对待它们。特殊方法的特点是名字前后有两个下划线。

如果你在类中定义了__init__()这个方法,创建对象时,Python会自动调用这个方法。这个过程也叫初始化。

这里继承了Bird类,它的定义见上一讲。

屏幕上打印:

We are happy birds.Happy,Happy!

我们看到,尽管我们只是创建了summer对象,但__init__()方法被自动调用了。最后一行的语句(summer = happyBird…)先创建了对象,然后执行:

summer.init(more_words)

‘Happy,Happy!’ 被传递给了__init__()的参数more_words

对象的性质

我们讲到了许多属性,但这些属性是类的属性。所有属于该类的对象会共享这些属性。比如说,鸟都有羽毛,鸡都不会飞。

在一些情况下,我们定义对象的性质,用于记录该对象的特别信息。比如说,人这个类。性别是某个人的一个性质,不是所有的人类都是男,或者都是女。这个性质的值随着对象的不同而不同。李雷是人类的一个对象,性别是男;韩美美也是人类的一个对象,性别是女。

当定义类的方法时,必须要传递一个self的参数。这个参数指代的就是类的一个对象。我们可以通过操纵self,来修改某个对象的性质。比如用类来新建一个对象,即下面例子中的li_lei, 那么li_lei就被self表示。我们通过赋值给self.attribute,给li_lei这一对象增加一些性质,比如说性别的男女。self会传递给各个方法。在方法内部,可以通过引用self.attribute,查询或修改对象的性质。

这样,在类属性的之外,又给每个对象增添了各自特色的性质,从而能描述多样的世界。

image

在初始化中,将参数input_gender,赋值给对象的性质,即self.gender。

li_lei拥有了对象性质gender。gender不是一个类属性。Python在建立了li_lei这一对象之后,使用li_lei.gender这一对象性质,专门储存属于对象li_lei的特有信息。

对象的性质也可以被其它方法调用,调用方法与类属性的调用相似,正如在printGender()方法中的调用。

Python基础: 反过头来看看

最初的“Hello World”,走到面向对象。该回过头来看看,教程中是否遗漏了什么。

我们之前提到一句话,‘Everything is Object’. 那么我们就深入体验一下这句话。

需要先要介绍两个内置函数,dir()和help()

dir()用来查询一个类或者对象所有属性。你可以尝试一下

print dir(list)

help()用来查询的说明文档。你可以尝试一下

print help(list)

(list是Python内置的一个类,对应于我们之前讲解过的列表)

list是一个类

在上面以及看到,表是Python已经定义好的一个类。当我们新建一个表时,比如:

nl = [1,2,5,3,5]

实际上,nl是类list的一个对象。

实验一些list的方法:

print nl.count(5)# 计数,看总共有多少个5

print nl.index(3)# 查询 nl 的第一个3的下标

nl.append(6)# 在 nl 的最后增添一个新元素6

nl.sort()# 对nl的元素排序

print nl.pop()# 从nl中去除最后一个元素,并将该元素返回。

nl.remove(2)# 从nl中去除第一个2

nl.insert(0,9)# 在下标为0的位置插入9

总之,list是一个类。每个列表都属于该类。

Python补充中有list常用方法的附录。

运算符是特殊方法

使用dir(list)的时候,能看到一个属性,是__add__()。从形式上看是特殊方法(下划线,下划线)。它特殊在哪呢?

这个方法定义了’+'运算符对于list对象的意义,两个list的对象相加时,会进行的操作。

print [1,2,3] + [5,6,9]

运算符,比如+, -, >,

尝试一下

print [1,2,3] - [3,4]

会有错误信息,说明该运算符“-”没有定义。现在我们继承list类,添加对’-'的定义

内置函数len()用来返回list所包含的元素的总数。内置函数__sub__()定义了“-”的操作:从第一个表中去掉第二个表中出现的元素。如果__sub__()已经在父类中定义,你又在子类中定义了,那么子类的对象会参考子类的定义,而不会载入父类的定义。任何其他的属性也是这样。

(教程最后也会给出一个特殊方法的清单)

定义运算符对于复杂的对象非常有用。举例来说,人类有多个属性,比如姓名,年龄和身高。我们可以把人类的比较(>,

下一步

希望你已经对Python有了一个基本了解。你可能跃跃欲试,要写一些程序练习一下。这会对你很有好处。

但是,Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象。我们已经看到了内置的比如说list,还有tuple等等。它们用起来很方便。在Python的标准库里,还有大量可以用于操作系统互动,Internet开发,多线程,文本处理的对象。而在所有的这些的这些的基础上,又有很多外部的库包,定义了更丰富的对象,比如numpy, tkinter, django等用于科学计算,GUI开发,web开发的库,定义了各种各样的对象。对于一般用户来说,使用这些库,要比自己去从头开始容易得多。我们要开始攀登巨人的肩膀了。

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

<think>嗯,用户让我介绍一下Python基础知识汇总。首先,我需要确定用户的需求是什么。可能他们刚开始学习Python,想要一个系统的概览,者是复习一下基础知识。不管怎样,我应该从最基础的部分开始,逐步展开,确保覆盖到关键。 首先,Python的基本语法特Python以简洁和易读著称,所以缩进很重要,得强调一下缩进代替大括号,还有注释的方式。然后,变量和数据类型,这部分需要列出常见的数据类型,比如整数、浮数、字符串、布尔值,还有复杂的列表、元组、字典、集合。可能需要解释可变和不可变类型的区别,比如列表和元组的不同。 接下来是运算符,包括算术、比较、逻辑、赋值这些基本运算符,可能还要提到成员运算符和身份运算符,比如in和is的用法。这部分用户可能需要例子来理解。 流程控制是编程的基础,条件语句if-elif-else,循环语句for和while,还有break、continue、pass这些控制语句。可能需要举例说明循环的使用场景,比如遍历列表者处理条件判断。 函数部分,定义函数的语法,参数传递,包括位置参数、默认参数、可变参数,返回值。还有lambda表达式,这部分对于初学者可能有难,但简要介绍应该没问题。 然后是数据结构,列表、元组、字典、集合的操作和方法。比如列表的append、extend,字典的get和items方法,集合的交集并集等。这部分需要比较详细,因为数据结构是Python中常用的部分。 文件操作,打开文件的模式(读、写、追加),读写文件的方法,以及使用with语句的好处,自动关闭文件。这部分例子很重要,用户可能需要知道如何实际读写文件。 异常处理,try-except块,finally的使用,如何抛出异常。处理异常是编写健壮程序的重要部分,应该涵盖常见用法。 模块和包,如何导入模块,创建自己的模块和包,安装第三方库。这部分用户可能会需要知道如何扩展Python的功能,比如用pip安装requests库。 面向对象编程,类、对象、继承、多态、封装的概念。构造方法__init__,实例方法,类方法,静态方法的区别。这部分可能需要更详细的解释,因为OOP对新手来说比较抽象。 常用内置模块,比如os、sys、datetime、json这些,举例说明它们的用途。用户可能经常需要这些模块来处理文件、系统参数、时间和JSON数据。 最后,可以推荐一些学习资源,帮助用户进一步学习。比如官方文档、书籍、在线教程和练习平台。 需要检查有没有遗漏的重要知识,比如生成器、装饰器这些高级特性,但既然是基础知识汇总,可能暂时不需要深入。不过,如果有余力的话可以简单提一下,让用户知道有这些概念存在。 还要注意使用中文回答,LaTeX格式的数学公式是否正确,但用户的问题是关于Python的,可能不太涉及数学公式,但如果有代码部分,需要用正确的格式标注。不过用户没有特别提到代码,所以可能以文字描述为主,适当的地方插入代码示例,比如函数定义、循环结构等。 现在需要组织这些内容,分成几个主要部分,每个部分下有小标题和要,结构清晰,方便阅读。确保语言简洁明了,适合初学者理解。可能还需要注意排版,使用Markdown的标题、列表等格式,但用户没有特别要求,所以按照常规的文本结构来处理。</think>以下是 Python 基础知识的系统整理,适合新手入门快速复习: --- ### 一、基本语法特 1. **缩进规则** - 用缩进(4个空格1个Tab)代替大括号 `{}` 表示代码块 - 错误示例: ```python if True: print("错误") # 缺少缩进会报错 ``` 2. **注释** - 单行注释:`# 注释内容` - 多行注释:`'''注释内容'''` `"""注释内容"""` --- ### 二、变量与数据类型 1. **基本类型** ```python a = 10 # 整数 int b = 3.14 # 浮数 float c = "Hello" # 字符串 str d = True # 布尔值 bool ``` 2. **复合类型** ```python list1 = [1, "a", True] # 列表(可变) tuple1 = (1, "a", True) # 元组(不可变) dict1 = {"name": "Alice"} # 字典(键值对) set1 = {1, 2, 3} # 集合(元素唯一) ``` --- ### 三、运算符 | 类型 | 运算符 | |------------|--------------------------------| | 算术 | `+ - * / // % **` | | 比较 | `== != > < >= <=` | | 逻辑 | `and or not` | | 成员 | `in` `not in` | | 身份 | `is` `is not`(判断对象标识) | --- ### 四、流程控制 1. **条件语句** ```python if score >= 90: print("A") elif score >= 60: print("及格") else: print("不及格") ``` 2. **循环语句** ```python # for循环 for i in range(5): # 输出0-4 print(i) # while循环 count = 0 while count < 3: print(count) count += 1 ``` --- ### 五、函数 1. **定义与调用** ```python def add(a, b=0): # 带默认值的参数 return a + b print(add(3, 5)) # 输出8 ``` 2. **可变参数** ```python def sum_all(*args): return sum(args) print(sum_all(1, 2, 3)) # 输出6 ``` 3. **Lambda表达式** ```python square = lambda x: x**2 print(square(5)) # 输出25 ``` --- ### 六、文件操作 ```python # 写入文件 with open("test.txt", "w") as f: f.write("Hello World") # 读取文件 with open("test.txt", "r") as f: content = f.read() print(content) # 输出 Hello World ``` --- ### 七、异常处理 ```python try: num = int(input("输入数字: ")) except ValueError: print("输入错误!") finally: print("执行结束") ``` --- ### 八、面向对象编程 ```python class Dog: def __init__(self, name): self.name = name def bark(self): print(f"{self.name}在叫!") my_dog = Dog("Buddy") my_dog.bark() # 输出 Buddy在叫! ``` --- ### 九、常用模块速览 | 模块 | 用途 | |------------|------------------------| | `os` | 操作系统接口 | | `sys` | 系统参数 | | `datetime` | 日期时间处理 | | `json` | JSON数据解析 | | `requests` | HTTP网络请求(需安装) | --- ### 学习资源推荐 - 官方文档:[docs.python.org](https://docs.python.org/zh-cn/3/) - 书籍:《Python编程:从入门到实践》 - 实践平台:LeetCode、Codewars 建议通过实际项目(如数据分析、Web开发)巩固知识,遇到报错时仔细阅读错误信息,善用`print()`调试和搜索引擎解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值