1-1、Python学习个人总结开篇

1-1、Python学习个人总结开篇

前言

好记性不如烂笔头哈,学习和开发过程中的一些经验如果不记下来的话可能几天就忘记了,然后下次可能就会犯同样的问题,所以我总是喜欢将自己学习过的东西总结记录下来,防止不停的在一个地方摔跟头,Python和shell脚本以及我所接触的Lua脚本都有一些相似之处,所以记录一些内容也会防止使用时出现混淆的情况。
下面这几句话是《Python基础教程》里引言的几句话,我觉得很不错:

C程序犹如拿着剃刀在刚打过蜡的地板上劲舞。
——Waldi Ravens
C++学起来很难,因为它天生如此。
——佚名
Java从很多方面来说,就是简化版的C++。
——Michael Feldman
接下来请欣赏与众不同的表演。
——巨蟒剧团之《飞翔的马戏团》

1、安装

直接搜索Python,然后Windows下可以直接下载exe程序进行安装,Linux下可以使用对应的包管理工具安装也可以源码编译安装,这里就不多说了,目前我没有遇到过啥问题,我目前主要用在Windows和Ubuntu下,Ubuntu下apt-get很快就安装好了,Windows下安装也就是从官网下载下来比较慢或者有时候会下载不成功,所以我这里给个我存到网盘的地址(Windows下3.7.1的64位版本):
链接:https://pan.baidu.com/s/1nrayXGcfAIaylWHyZb5A0w
提取码:j5lc
然后像安装普通软件一样安装即可,安装成功后如下:
Windows下Python安装成功后运行效果

2、交互解释器

对于程序员来说,这个玩意没啥意思,你知道就是上图运行结果后显示的那个样子,但是对于新手来说,这个玩意还是很新鲜的,我们不再是对着图形界面去操作电脑了,而是对着一个黑乎乎的框子,有没有一种黑客的既视感?不要哄笑,这是渺小的一步,也是伟大的一步。
交互解释器

3、算法、数和表达式、变量和语句等概念(不用纠结概念,先会用也可以)

算法只不过是流程或菜谱的时髦说法,详尽地描述了如何完成某项任务。
交互式Python解释器可用作功能强大的计算器。可以做加减乘除、乘方、求余等操作,以及处理二进制、八进制、十六进制数的操作。

>>> 0xAF 
175 
>>> 010 
8 
>>> 0b1011010010 
722

变量是表示(或指向)特定值的名称。
表达式是一些东西,而语句做一些事情。表达式和语句的行为很像,因此它们之间的界线可能并非那么明确。
涉及赋值时,语句和表达式的差别更明显:鉴于赋值语句不是表达式,它们没有可供交互式
解释器打印的值。

>>> x = 3 
>>>

4、获取用户输入

使用input函数,这里先用交互解释器运行:
获取用户输入
当你输入input("What’s your name: ")并按下回车后,会弹出“What’s your name:”,这时你就可以等待用户输入了,比如我这里输入了ZY,然后程序就会获取到你输入的内容(也就是用户输入的内容),交互解释器这里直接将输入结果显示出来了。

5、函数

可以使用乘方运算符(**)来执行幂运算。实际上,可不使用这个运算符,而使用函数pow。

>>> 2 ** 3 
8 
>>> pow(2, 3) 
8

函数犹如小型程序,可用来执行特定的操作。
Python提供了很多函数,可用来完成很多神奇的任务。实际上,你也可以自己编写函数(这将在后面更详细地介绍),因此我们通常将pow等标准函数称为内置函数。
像前一个示例那样使用函数称为调用函数:你向它提供实参(这里是2和3),而它返回一个值。鉴于函数调用返回一个值,因此它们也是表达式。
实际上,你可结合使用函数调用和运算符来编写更复杂的表达式。

6、保存并执行程序

交互式解释器是Python的亮点之一,它让你能够实时地测试解决方案以及尝试使用Python。要了解隐藏在背后的工作原理,只需尝试使用即可!然而,等你退出交互式解释器时,你在其中编写的所有代码都将丢失。你的终极目标是编写自己和他人都能运行的程序。
首先,你需要一个文本编辑器——最好是专门用于编程的(不推荐使用Microsoft Word之类的软件,但如果你使用的是这样的软件,务必以纯文本的方式保存代码)。然后将写的代码保存到文本中,保存时文本后缀为py,比如hello.py:

#!/usr/bin/python3

print("Hello, world!")

input("Press <enter>")

比如input_name.py:

#!/usr/bin/python3

name = input("What is your name? ") 
print("Hello, " + name + "!")

input("Press <enter>")

python脚本运行方式:

  • 从命令提示符运行
    首先,假定你打开了DOS窗口或UNIX shell,并切换到了
    Python可执行文件(在Windows中为python.exe,在UNIX中为python)或将该可执行文件所在的
    目录加入到了环境变量PATH中(仅适用于Windows)①。另外,假定前一节的脚本(hello.py)存
    储在当前目录下。满足上述条件后,就可在Windows中使用如下命令来执行这个脚本:
    C:>python hello.py
    在UNIX系统中,可使用如下命令:
    $ python hello.py
    如你所见,命令是一样的,只是系统提示符不同。
  • 让脚本像普通程序一样
    在有些情况下,你希望能够像执行其他程序(如Web浏览器或文本编辑器)一样执行Python脚本,而无需显式地使用Python解释器。UNIX提供了实现这种目标的标准方式:让脚本的第一行以字符序列#!(称为pound bang或shebang)开始,并在它后面指定用于对脚本进行解释的程序(这里是Python)的绝对路径。即便你对这一点不太明白,只需将下面的代码作为脚本的第一行,就可在UNIX中轻松运行脚本:
#!/usr/bin/env python

不管Python库位于什么地方,这都将让你能够像运行普通程序一样运行脚本。如果你安装了
多个版本的Python,可用更具体的可执行文件名(如python3)替换python。
要像普通程序一样运行脚本,还必须将其变成可执行的:

$ chmod a+x hello.py

现在,可以像下面这样来运行它(假定当前目录包含在执行路径中):

$ hello.py

如果这不管用,请尝试使用./hello.py,这在当前目录(.)未包含在执行路径中时也管用(负责的系统管理员会告诉你执行路径是什么)。如果你愿意,可对文件进行重命名并删除扩展名.py,使其看起来更像普通程序。
如果双击会如何呢
在Windows中,扩展名.py是让脚本像普通程序一样的关键所在。请尝试双击前一节保存的文件hello.py。如果正确地安装了Python,这将打开一个DOS窗口,其中包含提示信息What is your name?。然而,这样运行程序存在一个问题:输入名字后,程序窗口将立即关闭,你根本来不及看清结果。这是因为程序结束后窗口将立即关闭。尝试修改脚本,在末尾添加如下代码行:

input("Press <enter>")

现在运行这个程序并输入名字后,DOS窗口将包含如下内容:

What is your name? Gumby 
Hello, Gumby! 
Press <enter>

等你按回车键后,窗口将立即关闭,因为程序结束了。

比如turtle_equicrural_triangle.py:

#!/usr/bin/python3

from turtle import *

forward(100) 
left(120) 
forward(100) 
left(120) 
forward(100)

input("Press <enter>")

Windows下双击执行后的结果如下,慢慢打印出来一个等腰三角形:
在这里插入图片描述

7、注释

使用#进行注释,这个和shell脚本是一样的:

#!/usr/bin/python3
#Describe:使用外部模块turtle打印等腰三角形

from turtle import *

forward(100) 
left(120) 
forward(100) 
left(120) 
forward(100)

input("Press <enter>")

8、字符串

8-1、单引号字符串以及对引号转义

  • 普通情况下单引号和双引号都可以,没有差别;
>>> "Hello, world!" 
'Hello, world!'
  • 当字符串内部使用单引号时外部再用单引号括起来会报错,所以这时用双引号,反之亦然;
>>> "Let's go!" 
"Let's go!" 
>>> '"Hello, world!" she said' 
'"Hello, world!" she said'
  • 当然你非得想都只单用单引号或者双引号的话则可以对内部的单引号或者双引号使用/(反斜杠)进行转义;
>>> 'Let\'s go!' 
"Let's go!"
>>> "\"Hello, world!\" she said" 
'"Hello, world!" she said'

8-2、拼接字符串

使用+即可(这个和js是一样的):

>>> "Hello, " + "world!" 
'Hello, world!' 
>>> x = "Hello, " 
>>> y = "world!" 
>>> x + y 
'Hello, world!'

8-3、字符串表示str和repr

Python打印所有的字符串时,都用引号将其括起。这是因为Python打印值时,保留其在代码中的样子,而不是你希望用户看到的样子。
ptint打印时有一些转义,比如/n等,这时就需要结合str和repr函数来做处理,来决定是否规避转义符可能带来的影响:

>>> print(repr("Hello,\nworld!")) 
'Hello,\nworld!' 
>>> print(str("Hello,\nworld!")) 
Hello, 
world!

8-4、长字符串、原始字符串和字节

有一些独特而有用的字符串表示方式。例如,有一种独特的语法可用于表示包含换行符或反斜杠的字符串(长字符串和原始字符串)。对于包含特殊符号的字符串,Python 2还提供了一种专用的表示语法,结果为Unicode字符串。这种语法现在依然管用,但是多余,因为在Python 3中,所有的字符串都是Unicode字符串。Python 3还引入了一种新语法,用于表示大致相当于老式字符串的字节对象。你将看到,在处理Unicode编码方面,这种对象依然扮演着重要的角色。

  • 要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号),还可使用三个双引号,如""“like this”""。请注意,这让解释器能够识别表示字符串开始和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义;
print('''This is a very long string. It continues here. 
And it's not over yet. "Hello, world!" 
Still here.''')
  • 常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽
    略;
例如,如果编写如下代码:
print("Hello, \ world!")
它将打印Hello, world!。这种处理手法也适用于表达式和语句。
>>> 1 + 2 + \ 
 4 + 5 
12 
>>> print \ 
 ('Hello, world') 
Hello, world
  • 原始字符串
    原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用。
    如果你要在字符串中包含\n呢?例如,
    你可能要在字符串中包含DOS路径C:\nowhere。
>>> path = 'C:\nowhere' 
>>> path 
'C:\nowhere'

这好像没问题,但如果将其打印出来,就会出现问题。

>>> print(path) 
C: 
owhere

这并非你想要的结果,不是吗?那该怎么办呢?可对反斜杠本身进行转义。

>>> print('C:\\nowhere') 
C:\nowhere

这很好,但对于很长的路径,将需要使用大量的反斜杠。

path = 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz\\bozz'

在这样的情况下,原始字符串可派上用场,因为它们根本不会对反斜杠做特殊处理,而是让
字符串包含的每个字符都保持原样。

>>> print(r'C:\nowhere') 
C:\nowhere 
>>> print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz') 
C:\Program Files\fnord\foo\bar\baz\frozz\bozz

如你所见,原始字符串用前缀r表示。看起来可在原始字符串中包含任何字符,这大致是正
确的。一个例外是,引号需要像通常那样进行转义,但这意味着用于执行转义的反斜杠也将包含
在最终的字符串中。

>>> print(r'Let\'s go!') 
Let\'s go!

另外,原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的最后一个字符不能是反
斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据
前一个示例,这一点应该是显而易见的。如果最后一个字符(位于结束引号前面的那个字符)为
反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。

>>> print(r"This is illegal\") 
SyntaxError: EOL while scanning string literal

这合乎情理,但如果要指定以反斜杠结尾的原始字符串(如以反斜杠结尾的DOS路径),该
如何办呢?本节介绍了大量技巧,应该能够帮助你解决这个问题,但基本技巧是将反斜杠单独作
为一个字符串,下面是一个简单的示例:

>>> print(r'C:\Program Files\foo\bar' '\\') 
C:\Program Files\foo\bar\

请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。

9、小结

  • 算法:算法犹如菜谱,告诉你如何完成特定的任务。从本质上说,编写计算机程序就是使用计算机能够理解的语言(如Python)描述一种算法。这种对机器友好的描述被称为程 序,主要由表达式和语句组成。
  • 表达式:表达式为程序的一部分,结果为一个值。例如,2 + 2就是一个表达式,结果为4。简单表达式是使用运算符(如+或%)和函数(如pow)将字面值(如2或"Hello")组合起来得到的。通过组合简单的表达式,可创建复杂的表达式,如(2 + 2) *(3 - 1)。表达式还可能包含变量。
  • 变量:变量是表示值的名称。通过赋值,可将新值赋给变量,如x = 2。赋值是一种语句。
  • 语句:语句是让计算机执行特定操作的指示。这种操作可能是修改变量(通过赋值)、将信息打印到屏幕上(如print(“Hello, world!”))、导入模块或执行众多其他任务。
  • 函数:Python函数类似于数学函数,它们可能接受参数,并返回结果。
  • 模块:模块是扩展,可通过导入它们来扩展Python的功能。例如,模块math包含多个很有用的函数。
  • 程序:你通过练习学习了如何编写、保存和运行Python程序。
  • 字符串:字符串非常简单。它们其实就是一段文本,其中的字符是用Unicode码点表示的。
函数 描述
abs(number) 返回指定数的绝对值
bytes(string, encoding[, errors]) 对指定的字符串进行编码,并以指定的方式处理错误
cmath.sqrt(number) 返回平方根;可用于负数
float(object) 将字符串或数字转换为浮点数
help([object]) 提供交互式帮助
input(prompt) 以字符串的方式获取用户输入
int(object) 将字符串或数转换为整数
math.ceil(number) 以浮点数的方式返回向上圆整的结果
math.floor(number) 以浮点数的方式返回向下圆整的结果
math.sqrt(number) 返回平方根;不能用于负数
pow(x, y[, z]) 返回x的y次方对z求模的结果
print(object, …) 将提供的实参打印出来,并用空格分隔
repr(object) 返回指定值的字符串表示
round(number[, ndigits]) 四舍五入为指定的精度,正好为5时舍入到偶数
str(object) 将指定的值转换为字符串。用于转换bytes时,可指定编码和错误处理方式

在上表中,方括号内的参数是可选的。

最后

推荐《python基础教程》,写的比较基础,很容易上手,基本上看完都能学会python基础语法了,基础的应用开发也都差不多可以上手了,然后根据自己的方向再找其它书籍深入去研究就好了。我这里的总结基础部分基本上都是根据这本书来的,后面如果说是侵权了可能会删掉这部分发表在博客上的内容,我的本意只是为了将学习过程中的内容整理一下,加深印象,系统性的记忆一下。

发布了119 篇原创文章 · 获赞 138 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/weixin_39510813/article/details/103604543
1-1
今日推荐