一个原生c/cpp选手的Python学习笔记。记录给自己看,不求全面,顺便学习Markdown。
(注: 我使用的Python版本是Visual Studio 2019 给我的 3.7 , 系统Windows10)
Python真香!
动态语言/脚本语言
是的,python是动态语言。当你在shell里写一行代码按下enter后你就知道了。
摘录
动态语言(Dynamic Programming language)是相对于静态语言而言,将很多静态语言编译(compilation)时期所做的事情推迟到运行时,在运行时修改代码的行为,比如添加新的对象和函数,修改既有代码的功能,改变类型。
例子
这是c/cpp:1
2
3
4
5
int main(){
printf("Hello,world!");
}
这是python:1
2
3
4
5
6Hello,world!
Hello world!
print("Hello,world!")
Hello,world!
#>>>表示输入
解释型语言
貌似是个很比较底层的概念。解释型跨平台好,编译型效率高。
摘录
解释型语言是相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
模块(Module)
有点像c/cpp的头文件?但是要自己先下好?1
1
import math
概述
模块是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块
import
用于引入模块,如 import math
调用引入后模块中的资源时,以模块名写为限定符,后跟dot和资源名称。形式如下:1
2
3
4
5
6模块名.资源名
#example:
import math
math.round(6.5)
math.sqrt(2)
如果某个模块名过长(或者你经常打错),可以选择使用import...as为它取别名
(想到cpp中为了偷懒经常用#define和引用&将很长的变量换一个简单的别名)1
2import math as m
m.pi
from…import
将部分资源引入命名空间(namespace,我DNA动了)1
2
3
4example:
from math import sqrt,pi
sqrt(2)
x=pi
from…import*
将模块全部资源引入命名空间(这种一看就要少用)1
from math import *
dir()函数
Direction导引?
是模块的内置函数,可以找到模块定义的所有名称。1
2
3import fibo
dir(fibo)
['__name__', 'fib', 'fib2']
如果还想知道某个函数的具体功能,可以 百度 使用help()函数查看它的文档:1
2
3
4
5
6import math
help(math.sqrt)
Help on built-in function sqrt in module math:
sqrt(x, /)
Return the square root of x.
反映了sqrt()函数的参数和功能。
包(Package)
打包带走。
概述
包是一种管理 Python 模块命名空间的形式。引入方法与模块类似。1
2
3
4
5import Package #引入一个包
import Package.SubPackage #只引入这个包的一个子包
Package.SubPackage.Function1()
from Package import Function2 #引入某个函数,在没有函数名冲突时推荐使用这种方法
Function2()
想要找到所需的包,可以前往the Python Package Index (PyPI)—— https://pypi.org/ 。
如何安装一个包?
相较于理论上的内容 , 我觉得这才是初学者(我)最关心的内容 .
pip
在cmd中 , 我们可以输入pip命令来安装(pip在高版本的Python安装包中自带):1
2
3
4python -m pip install SomePackage # 安装包名为SomePackage的包
python -m pip install SomePackage==1.0.4 # 安装某个特定版本
python -m pip install "SomePackage>=1.0.4" # 安装不小于某个版本号
python -m pip install --upgrade SomePackage # 更新某个包
安装某个包时 , 会安装所有它的依赖项 要不然你怎么用 .
VS2019
作为超重量级编译器(迫真),VS在他的编程界面内置了管理与安装包的窗口:
可以在这里管理,更新包.
在搜索框中可以在PyPI中查找包,也可以输入命令,从PyPI安装所需的包:

帮助文档
更多细节可参考 安装Python模块.
库(Library)
攻坚小组。
概述
具有相关功能模块的集合。
基础语法
循环
你好!你好!你好!你好!你好!你好!
for语句
1 | for i in range(4): print(i) |
我的问题
- 在写这一段的时候,我在shell里看到了许多SyntaxError(语法错误)可能是我没搞懂shell怎么写多行
1
2
3
4for i=4 in range(1,4,-1): print(i)
SyntaxError: invalid syntax
for range(0,4): print(1)
SyntaxError: invalid syntax希望大家好自为之,好好反思,不要再犯这样的聪明。 - 能否使用range达到图论建图时前向星遍历边的效果?或者有什么其他的方法?
参考资料:
- 菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html
- 英文维基百科 https://en.wikipedia.org/wiki/Python_(programming_language)
- Python文档 https://docs.python.org/zh-cn/3.7/contents.html
- Python程序设计与问题求解,Kenneth A.Lambert