目录
第一章 Python入门
1、什么是程序
所谓程序就是一行行的代码,计算机能识别并依次执行它们。通过编写程序,我们能指导计算机去做我们想让它做的任何事情。
2、什么是Python
为了能让计算机理解我们想让它做什么,我们必须要使用特定的语法来描述事情的步骤,以消除自然语言的歧义。
Python就是一种比较好用的编程语言即语法。通过遵循Python语法,我们便能编写出可以让计算机读懂的代码程序。这种程序被称为Python程序。
但是实际上,计算机的CPU并不能直接执行Python代码,Python代码仅仅描述清楚了我们希望计算机做的事。要想执行Python代码,我们必须让计算机使用Python解释器。只有通过Python解释器,将Python代码转化为CPU能理解的二进制代码,计算机才能知道它究竟要做哪些事情。
而Python与许多编程语言不同之处,就体现在这个Python解释器上。Python是一种解释型语言,解释性语言在运行自己的程序时,会将其中的代码一条一条地翻译成CPU能理解的二进制代码并执行。
而另一种编程语言的做法,是编写完代码后,便立即将代码翻译成CPU能理解的二进制代码,这个过程叫做编译。这样便可在运行程序时,直接执行其中的二进制代码,从而免去翻译的步骤。这种编程语言称为编译型语言。
解释型语言的好处,是程序的大小会非常精简,无需包含啰嗦的二进制代码。同时,解释型语言可以很方便地实现跨平台,因为我们可以针对不同的平台开发不同的解释器,而很少需要考虑移植的问题。如果不能理解什么是平台,那就把它理解为操作系统就好了,比如Windows、Linux、Unix等等。坏处则是运行速度会相当的慢。
编译型语言则是相对的。编译型语言的好处是运行速度非常快,甚至是解释型语言运行速度的几十倍。坏处则是程序体积会相对比较大。同时对于一些涉及底层比较多的编译型语言,也经常会出现移植性问题,比如C/C++等等。
值得一提的是,Windows平台下的pyinstaller工具虽然可以将Python代码“编译”为exe文件,但实际上它仅仅是在原本的代码上附加了一个精简的Python解释器,实际运行速度没有丝毫的提升。
3、第一个Python程序
在Python解释器中输入以下内容,即可输出一段"Hello world!":
print('Hello world!')
其中英文单引号可以替换为英文双引号:
print("Hello world!")
输出结果为:
Hello world!
同时"Hello world!"中的内容可替换为任何内容进行输出。如以下语句可输出"你好中国":
print("你好中国")
输出结果为:
你好中国
注意:内容必须使用英文单引号或双引号引起来,使用中文引号会报错。同时其中的括号必须为英文括号,中文括号同样会报错。
如何退出Python程序
若想退出Python程序,则可输入exit()或quit()实现。
4、使用IDE
为了提升代码的开发效率,我们一般会将代码书写在IDE中执行。具体内容此处略。
第二章 注释
注释有两种作用。第一种作用是用于写出某段代码的性质或用途等信息,使代码更易读懂。这有利于我们后期维护代码。第二种作用是暂时跳过某些代码的执行。
注释分两种种类,即单行注释与多行注释。
1、单行注释
输入一个井号(#)即可进行单行注释:
# 这是一段单行注释
比如对于之前的代码,我们便可这么写注释:
# 以下代码可以输出一段"Hello world!"
print('Hello world!')
# 以下代码同样可以输出一段"Hello world!"
print("Hello world!")
其中注释中的内容不会被解释器执行,而会被解释器跳过。
这样经过注释,我们便可在阅读代码时迅速得知其具体作用。这是注释的第一种作用。
此外,单行注释也可以写在代码的右边:
print('Hello world!') # 输出一段"Hello world!"
print("Hello world!") # 输出一段"Hello world!"
此写法中,代码与注释之间一般会打一个缩进,以避免注释与代码间过于紧凑,降低美观感。缩进即在编辑器中按下Tab键所输入的内容。
同时所有的单行注释中,井号与注释内容间都应有一个空格,以提升美观感。
注释第二种作用我们举一个例子。比如我刚刚写下了这行代码:
print("今天又要学习Python了,但是...")
print("QAQ")
print("明天的我会更加努力的吧....")
现在,我觉得"QAQ"可以省略掉,但我不确定省略后的效果是怎样的。
一般我们的做法是直接删掉print("QAQ"),如果效果不好就撤销回来。或者直接剪切掉这行代码,复原时粘贴回来。然而一旦代码量非常大,修改量变会急剧地增加,这样我们就有可能弄得手忙脚乱。
对于程序员而言,更好的做法应该是这样的:
print("今天又要学习Python了,但是...")
# print("QAQ")
print("明天的我会更加努力的吧....")
这样,不仅方便了我们后期随时可以恢复这行代码,而且还为我们后期的代码编写提供了参考信息。
2、多行注释
以三个英文单引号为开头、三个英文单引号为结尾,即可在两者中间输入多行注释。也可以分别使用三个英文双引号来作为开头与结尾。
'''
以下代码将输出同一段话:
"哈喽沃德!"
'''
print('哈喽沃德!')
print("哈喽沃德!")
"""
除了三个英文单引号以外,
三个英文双引号也可以引起来多行注释
"""
在实际使用过程中,多行注释用于注释代码时极易出现问题,所以一般不会大量使用。
第三章 变量与几种常见数据类型
1、什么是变量
变量就是用于存放程序运行时所用信息的容器。如以下代码:
number = 3 # 生成了一个变量,名字为number,其中存放了 3 这个数字
当我们想要声明一个变量时,我们只需写下它的名字,然后加上一个等号,再输入变量的内容即可。变量可以直接放到print中输出内容:
number = 3 # 生成了一个变量,名字为number,其中存放了 3 这个数字
print(number) # 打印变量number中的内容,即 3
2、命名规则
一般而言Python中的一切命名都只能由大写/小写字母(ABCabc)、下划线(_)和数字(0~9)组成,其中不能以数字开头。
具体的命名方式包括大坨峰、小驼峰与下划线三种方式。以下是这三种方式的示例:
(1)大坨峰
NumberOne = 3 # 生成了一个变量,名字为NumberOne,其中存放了 3 这个数字
(2)小坨峰
numberOne = 3 # 生成了一个变量,名字为numberOne,其中存放了 3 这个数字
(3)下划线
number_one = 3 # 生成了一个变量,名字为number_one,其中存放了 3 这个数字
3、变量的命名规则
变量一般应以小驼峰的方式命名,同时对于其具体名字有一定程度的省略。比如:
numTwo = 99.9 # 生成了一个变量,名字为numTwo,其中存放了 99.9 这个数字
print(numTwo) # 打印变量numTwo中的内容,即 99.9
4、赋值运算符
比如以下代码:
numTwo = 99.9 # 生成了一个变量,名字为numTwo,其中存放了 99.9 这个数字
numTwo = 1314 # 将变量numTwo的内容更改成了1314
print(numTwo) # 打印此时变量numTwo中的内容,即 1314
实际上在Python中,等号与现实的含义有所不同,它并不表示相等,而是表示将等号右边的值写入到左边的变量中。此处等号称为赋值运算符。
5、基本数据类型
Python中,基本数据类型包括整数(int)、浮点数(float)、字符串(str)这三种。
整数就是整数,如0、1、-2、97、100这些数字。
浮点数就是小数,如1.0、3.14、-1.3这些数字。
字符串就是用英文单引号或英文双引号引起来的内容,比如'English'、"Alpha"、'123'。注意123是数字,而'123'则是字符串。
如果字符串太长,则可以这么书写:
text = '马克思主义,英文是Marxism,是马克思主义理论体系的简称,'
'是关于全世界无产阶级和全人类彻底解放的学说。'
print(text)
其中的两段字符串将会自动拼接起来。
结果为:
马克思主义,英文是Marxism,是马克思主义理论体系的简称,是关于全世界无产阶级和全人类彻底解放的学说。
如果想输出跨行字符串,如:
最爱湖东行不足
绿杨阴里白沙堤
第一种方法是使用'\n'表示换行:
text = '最爱湖东行不足\n绿杨阴里白沙堤'
print(text)
第二种方法是使用三个英文单引号或双引号:
textOne = '''最爱湖东行不足
绿杨阴里白沙堤'''
print(textOne)
# 或者:
textTwo = """最爱湖东行不足
绿杨阴里白沙堤"""
print(textTwo)
6、如何查看数据的类型
我们可以使用以下代码查看数据的类型:
dataType = type(99.9) # 获得 99.9 的数据类型并存储于dataType中
print(dataType) # 打印dataType
其中 type() 的作用就是获得 99.9 的数据类型。
输出结果为:
<class 'float'>
这表明99.9是一个float浮点数,即小数。
以此类推,我们就能获得各种数据的类型。
print(type(3.14)) # 打印 3.14 的数据类型
print(type(12)) # 打印 12 的数据类型
print(type("张三")) # 打印 "张三" 的数据类型
输出结果为:
<class 'float'>
<class 'int'>
<class 'str'>
也可以把一个变量放在 type() 之中,获得变量的内容的数据类型。如:
author = "hikali"
print(type(author)) # 打印变量 author 的内容的数据类型,即 "hikali" 的数据类型
结果为:
<class 'str'>
7、其他常用数据类型
(1)虚数
com = 1 - 3j
print(type(com))
print(com.real)
print(com.imag)
结果为:
<class 'complex'>
1.0
-3.0
第四章 格式化输出其一
1、print输出设置
比如我们写下了这样的一个例子:
headText = "我是"
footText = "赵日天"
print(headText, footText) # 同时输出 headText 与 footText
结果为:
我是 赵日天
可以发现 headText 与 footText 在一行输出了,并且之间有一个空格。
现在想去掉这个空格,则可以这么书写:
headText = "我是"
footText = "赵日天"
print(headText, footText, sep="") # 同时输出 headText 与 footText
结果为:
我是赵日天
其中,sep= 的作用就是设置此句print中逗号分割的几个变量之间的间隔内容。不书写时默认为一个空格。
此外以下例子中:
headText = "我是"
footText = "赵日天"
print(headText, footText, sep="") # 同时输出 headText 与 footText
print("我喜欢看动漫")
结果为:
我是赵日天
我喜欢看动漫
然而我希望输出“我是赵日天,我喜欢看动漫”,应该怎么做呢?方法如下:
headText = "我是"
footText = "赵日天"
print(headText, footText, sep="", end=",") # 同时输出 headText 与 footText
print("我喜欢看动漫")
输出结果便成为了:
我是赵日天,我喜欢看动漫
其中,end= 的作用便是设置此句print输出完毕后的输出内容。不书写时默认为一个回车('\n')。
总结一下,sep= 可以修改变量的间隔内容,end= 可以修改结尾内容。
2、字符串格式化
方式包含三种,分别为f""、"".format()、""%()三种。
1、f""或f' '
如以下代码:
year = 2022
whatToSay = f'今年是{year}年'
print(whatToSay)
结果为:
今年是2022年
2、"".format()或' '.format()
3、""%()或' '%()
4、格式说明符
对于f' '或' '.format(),我们可以在大括号里面内容的末尾写上格式说明符,以控制插入内容的格式。
在 ':'
后传递整数,可为该字段设置最小字符宽度,常用于列对齐:比如以下代码可以控制列宽分别为6和10:
year = 2022
whatToSay = f"今年是{year:6},{'恭喜发财':10}!"
print(whatToSay)
结果为:
今年是 2022,恭喜发财 !
还可以在
(正在建设中...)
建设列表
-
Python入门
-
注释
-
变量、数据类型以及赋值与其命名规则
-
格式化输出其一(print的用法与字符串格式化)
-
算术运算符
-
复合的赋值运算符
-
逻辑运算符与布尔(bool)数据类型
-
判断语句
-
循环语句其一——while
-
数据结构(列表list、元组tuple、字典dict、集合set)
-
可变对象与不可变对象
-
整数池
-
循环语句其二——for与可迭代
-
打包与解包
-
函数
-
变量作用域
-
匿名函数(lambda表达式)
-
排序函数
-
格式化输出其二(函数)
-
类
-
对象
-
迭代器
-
迭代器表达式与推导式
-
生成器
-
装饰器
-
错误与异常
-
模块的使用与命名空间
-
文件操作
-
正则表达式与re模块
-
模块的制作、发布与安装
-
格式化输出其三(模块)
-
多线程与异步
-
十进制浮点数
-
模板
-
标准库