更多课程 选择中心


Python培训

400-996-5531

Python基础知识盘点和解析


1.1 缩进

缩进的严格要求使得Python的代码简介并且具有层次性,能够给作者在检查的时候能够准确的确定问题点,所以缩进在代码中不可缺少的。例如我们在上章说的一个判断

study = int(input("请输入你的成绩:"))if study >= 60 and study < 90: print("你的成绩良好!!")elif study >= 90: print(" 你的成绩优秀")else: print("你的成绩不合格")

在if study >= 60 and study < 90:会车的时候自动自动缩紧,这个是我们在Pycharm或者Sublime工具中,如果你用vim就不会自动缩紧,有愿意尝试的可以自己试一下。

1.2 变量

当把一个值赋给一个名字时,它会存储在内存中,把这块内存称之为变量(variable)。在多数语言中,都把这种行为称之为“给变量赋值”或者“把值存储在变量中”。不过Python不同,它不实存储在内存中而是把名字“贴”在值的上面,所有有些Python程序员会说Python中没有变量,只有名字。变量就是一个名字,通过名字,可以找到我们想要的东西。

下面看个例子:

>>> python = "pythonv3">>> print(python)pythonv3>>> python = "python3v">>> print(python) python3v

这就是为什么变量叫变量,因为它时可变的。在看一个例子:

>>> a = 3 >>> a = 6>>> b = 8>>> z = a + b>>> print(z)14

例子中创建了一个变量,名字叫a,给初始赋值3,然后又给赋值了一个6(此时赋值的3被替换成6来了),然后又创建了一个b,赋值了8,最后创建了一个变量z,它的值就是a和b的和。

同样的方法我们可以自己在字符串中试一试:

>>> a = "你好,">>> b = "世界">>> z = a + b>>> print(z) 你好,世界

这种方法,在字符串中称之为拼接。

注意事项:

1、在使用便利之前,需要先给予赋值。 2、变量名可以包括字母,数字,下划线,但变量名不能以数字开头。 3、字母可以时大写或者小写,但是大小写时不同的,也就是说两个变量a,A不是同一个变量。 4、等号(=)是赋值的意思,左边是名字,右边是值,不可写反了。 5、变量命名可以取任何合法的名字(这里的合法是和代码中模块或者程序中的名称不重复),一个优秀的程序员都会在自己的代码中给自己的变量取一个专业的名字。

1.3 字符串

字符串到现在我们可以理解为就是引号内的一切东西,也可以叫做文本。文本和数字是两个截然不同的东西。

>>> 3 + 25

如果两边没有加引号,直接返回的是两个数字相加的结果,下面加上引号试一下

>>> "3" + "2"'32'

加上引号就表明了是字符串,然后相加就变成了字符串的拼接,这就是引号带来的区别。

当你创建的时候加上引号就是在告诉Python你创建的是字符串,可以是双引号,也可以是单引号。符号的两边保持一致,如果一边是单引号另一边是双引号,Python就不知道你是做什么了。

>>> 'Hello, Word" File "<stdin>", line 1 'Hello, Word" ^SyntaxError: EOL while scanning string literal

如果字符串内容中需要出现单引号或者双引号的时候我们可以使用转义符号()对字符串中的单引号或者双引号进行转义。也可以使用Python既可以使用单引号也可以使用双引号这一方法进行表示。下面看一下例子:

>>> 'Let\'s go'"Let's go">>> "Let's go" "Let's go"

1.4 原始字符串

感觉上面的反斜杠转义挺好的,但是如果在window中打印路径的时候问题又来了,打印一下C:\newfile

>>> str = "c:\new">>> str'c:\new'>>> print(str) c:ew

在打印结果中看到\n没有转义直接会车了,如果一个的话我们直接在前面加一个转义符完全可以搞定。但是如果是多个我们怎么办,这里就用到了Python中快捷的方法,只需要在字符串前面加上r即可。

>>> str = r"c:\new\now\naw\nbw">>> str'c:\\new\\now\\naw\\nbw'>>> print(str) c:\new\now\naw\nbw

在打印的时候自动在字符串中添加了转义符,在使用的时候无论是否是原始字符串都不能以反斜杠结尾(注:如果把反斜杠留在字符串的结尾就是表示字符串还没有结束,换行继续的意思,如果非要在结尾使用反斜杠,大家可以试试)

>>> str = r'c:\new\now\naw\nbw\''>>> str"c:\\new\\now\\naw\\nbw\\'">>> print(str)c:\new\now\naw\nbw\'

1.5 长字符串

如果在打印的时候打印一行两行还行,如果打印多行,例如:

关关雎鸠,在河之洲。窈窕淑女,君子好逑。 参差荇菜,左右流之。窈窕淑女,寤寐求之。 求之不得,寤寐思服。悠哉悠哉,辗转反侧。 参差荇菜,左右采之。窈窕淑女,琴瑟友之。 参差荇菜,左右芼之。窈窕淑女,钟鼓乐之。

如果我们用原始字符串中学到的反斜杠也可以做到,但是如果有几百行在这样做的话就有点二了。所以在Python中也给我们准备了一个轻松解决问题的方法就是用三重引号("""内容""")可以轻松解决。

>>> str = """... 关关雎鸠,在河之洲.窈窕淑女,君子好逑.... 参差荇菜,左右流之.窈窕淑女,寤寐求之.... 求之不得,寤寐思服.悠哉悠哉,辗转反侧.... 参差荇菜,左右采之.窈窕淑女,琴瑟友之.... 参差荇菜,左右芼之.窈窕淑女,钟鼓乐之.... """>>> str'\n关关雎鸠,在河之洲.窈窕淑女,君子好逑.\n参差荇菜,左右流之.窈窕淑女,寤寐求之.\n求之不得,寤寐思服.悠哉悠哉,辗转反侧.\n参差荇菜,左右采之.窈窕淑女,琴瑟友之.\n参差荇菜,左右芼之.窈窕淑女,钟鼓乐之.\n'>>> print(str)关关雎鸠,在河之洲.窈窕淑女,君子好逑.参差荇菜,左右流之.窈窕淑女,寤寐求之.求之不得,寤寐思服.悠哉悠哉,辗转反侧.参差荇菜,左右采之.窈窕淑女,琴瑟友之.参差荇菜,左右芼之.窈窕淑女,钟鼓乐之.

注:在Python中切记,编程中所使用的标点符号都是英文的,上面我们也可以使用打印中文的标点符号,但是也只是在打印的时候而已。

1.6 条件分支

条件分支中涉及的一个最主要的也就是一个比较,例如大家认识的大于号(>),小于号(<)以及等于号(==)(在Python中(==)表示等于号,不等于用一个感叹号和一个等号搭配来表示(!=))。另外需要大家熟悉的Python比较符号有:

<,<=,>,>=,==,!=>>> 4 > 2True>>> 8 < 10True>>> 2 == 5False>>> 4 != 2True

输入两个数进行比较,然后返回结果。这里在做比较的时候比较符号两边都分别留了一个空格,留空格的目的主要是给代码之间留点空间看上去显的美观一点,如果不留空格也可以进行比较只是如果代码量多的时候显的比较拥挤,看山上去并不美观。

讲到这的时候,大家可以看看上节说的if-else循环,根据不同的条件,打印不同的结果这就是条件分支。

if 条件: 条件为真(True)执行的操作 else: 条件为假(False)执行的操作

看看上次的例子:

study = int(input("请输入你的成绩:"))if study >= 60: print("你的成绩良好!!")else: print("你的成绩不合格")

根据输入的成绩分别定义:不合格,良好,优秀。满足:大于60的判断良好。满足:小于等于60的判断不合格。

1.7 while循环

while循环就是程序不断的重复执行某些代码。

while 条件: 条件为真(True)执行的操作

下面接着上次的例子:

guess = int(input("输入你的成绩:"))while guess != 60: guess = int(input("猜错了,重新输入:")) if guess == 60: print("嘿嘿,你终于及格了,不过没有奖励") else: if guess > 60: print("过及格线了,我的哥") else: print("没过及格线,我的哥")

循环当输入的成绩不等于60的时候一直重复while下的输入和if里的else。只要不是等于60就不会跳出循环。

1.8 闲聊数据类型

前面简单的说了一下字符串的东西说的也不全面,下面也不会说详细,主要是为了留在后面和列表,字典一起说方便记忆。

1.8.1 整型

整型说白了就是整数,在Python3中的整数和长整型进行了无缝结合。长度不受限制,如果非要说受限制的话,那只限于计算机的虚拟内存总数,所以Python3很容易进行大数计算。

1.8.2 浮点型

浮点型就是平时说书的小数,例如我们小学学过的圆周率。Python中区分整型和浮点型的区别是看有没有小数点。

浮点型有一个E记法,也就是平时说的科学计算方法,用来表示特别大或者特别小的数:

>>> a = 0.000000000000000000000000000000000026>>> a2.6e-35>>> b = 2500000000000000000000000000.0>>> b2.5e+27

根据上面的例子可以看出E就是指数为10.E后面的数字就是10的多少次幂。

1.8.3 布尔类型

布尔类型就是特殊的整型,尽管布尔类型用True和False来表示“真”和“假”。但布尔类型可以当作整数来对待,True相当于整数值1,False相当于整数值0。下面用布尔类型做一下运算:

>>> True + False1>>> True * False0>>> True / FalseTraceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError: division by zero

因为0不能做除数,所以在最后出现错误。

1.8.4 类型转换

下面说几个数据类型相关的函数:int(),float(),str()

int()的作用是把字符串或者浮点型转换成整数,这里说的字符串必须是加引号的数字。

>>> a = "520">>> b = int(a)>>> a,b('520', 520)>>> c = 2.999>>> d = int(c)>>> c,d(2.999, 2)

这里需要注意一下,浮点数转整数不是四舍五入,而是采取的“截取”处理,就是去掉小数点后面的。

float()的作用是将整数或者字符串转成浮点数(就是带有小数的)

>>> a = "529">>> b = float(a)>>> a,b('529', 529.0)>>> c = 529 >>> d = float(c)>>> c,d(529, 529.0)

str()的作用是把整数或者浮点数转成字符串

>>> a = 5.99>>> b = str(a)>>> a,b(5.99, '5.99')>>> c = 234>>> d = str(c)>>> c,d(234, '234')>>> e = str(5e15)>>> e'5000000000000000.0'

1.8.5获取关于类型的信息

当给你一个变量如果不给赋值你没办法看出变量的类型,如果想知道怎么办,那么就需要用到Python中的type()函数了。

>>> type("345")<class 'str'>>>> type(234)<class 'int'>>>> type(23.4)<class 'float'>>>> type(5e20)<class 'float'>>>> type(True)<class 'bool'>

但是Python中也给了另外一个获取类型的函数isinstance函数,传入两个参数,返回一个布尔类型。

>>> isinstance("123", str)True>>> isinstance(234, int)True>>> isinstance(3.45, int)False

1.9 常用操作符

1.9.1 算术操作符

Python的算术操作符和我们理解的大多数语言的算术操作符一样,也紧紧是大多数而已,不是全部。

+ - * / % ** //

前面四个好理解,加减乘除。但是后面四个呢?下面我们一个一个的举例来说:

>>> a = b = c = d = 10>>> a += 1>>> b -= 1>>> c *= 10>>> d /= 8>>> print(a,b,c,d)11 9 100 1.25

Python中对于算术运算可以进行优化例如:

>>> a = a + 1和>>> a += 1

是一样的

在Python2版本中和Python3版本中有些除法是不一样的,包括很多其他的语言。整数一般都是采用floor的方式,有些书籍称之为地板除法(注:因为floor翻译过来就是地板的意思)。地板除法的意思就是:计算结果取比商小的最大整型,也就是舍弃小数的意思(例:3/2等于1),上面的例子中发现,即使是进行整数间的除法,但是答案也是自动返回的浮点型的精确数值,也就是Python用真正的除法代替了地板除法。

Python中也有自己的地板除法就是后面的双斜杠,不过需要注意的是,无论是整数运算还是浮点数运算,都会执行地板除法。

>>> 3 // 21>>> 3.9 // 21.0

百分号(%)表述求余数的意思

>>> 5 % 32>>> 4 % 20>>> 235 % 197

1.9.2 优先级问题

当多个运算符同时出现在一个表达式中的时候,需要按照优先规定的级别来进行运算。先乘除后加减,如果有括号先算括号里的,我们小学学的东西,在这里同样可以使用。

-2 * 8 + 6 / -2 - 9

相当于

(-2) * 8 + 6 / (-2) - 9

这些运算顺序小学都知道了,只是在负数的时候还是建议大家能用括号括起来,这样看起来比较直观一点。在Python中还有一个特殊的乘法,就是双星号(**),也就是我们小学学的幂次方,也称幂运算符。例如:3**2,双星号左侧的3称为底数,右侧的2称为指数,把这样的算式称之为3的2次幂,结果就是:

>>> 3 ** 29

用Python进行幂运算的时候需要注意优先级问题,因为幂运算和一元操作符(例如:减号被当作表示负数的符号来用的时候,它就是一元操作符,因为它只有一个操作数)的优先关系比较特别:幂运算操作符比其他左侧的一元操作符优先级别高,比其右侧的一元操作符优先级别低;

>>> -3 ** 3-27>>> 3 ** -20.1111111111111111

1.9.3 比较操作符

比较操作符包括:

< <= > >= == !=

这个在条件分支里讲过,这里不做过多的叙述。

1.9.4 逻辑操作符

逻辑运算包括:

and or not

and原本想在while循环里说的,不过这样说也一样,前面也有例子。当只有and操作符左边的操作数为真,且右边的也为真的时候,结果为真。当有一边为假的时候,结果为假。

or操作符跟and不一样,or操作符只需要一边为真,结果就为真。当两边同时为假的时候,结果才为假

not是一个一元操作符,它的作用是得到一个和操作数相反的布尔类型的值。

>>> (3 < 6) and (2 > 1)True>>> (3 < 6) and (2 > 4)False>>> (3 < 2) and (2 > 4)False>>> (3 < 6) or (2 > 1)True>>> (3 < 6) or (2 > 4)True>>> (3 < 2) or (2 > 4)False>>> not TrueFalse>>> not 0True>>> not 4False

如果你看到这样的运算表达式:

3 < 5 < 8

这在其他编程中是不合法的但是在Python中是可以的,相当于

3 < 5 and 5 < 8

最后,所有运算符的优先级别合并到一起是:幂运算,正负号,算术操作符,比较操作符,逻辑运算符。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python 自然语言处理入门
下一篇:Python 开发者节省时间的 10 个方法

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省