本文来源公众号“萝卜大杂烩”,仅用于学术分享,侵权删,干货满满。
原文链接:长文预警,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏慢慢看
Python作为简单易学的编程语言,想要入门还是比较容易的,接下来看看吧。
0 搭建语言环境
IDE 的选择
目前市面上流行着很多的 Python 编辑器,比如 Sublime,Notebook++ 等,不过还是推荐如下两个:
-
PyCharm:这是一个跨平台的 Python 开发工具,不但拥有常规的调试、语法高亮,智能提示等功能外,还自带多个数据库连接器,使你在调试数据库的时候也能得心应手,不再忙于到处下载各种数据库客户端。
-
Jupyter:这个是一个 web 式的在线编辑器,每次运行一行代码,你都可以立即得到结果,非常方便,在代码调试阶段,用处无限。
1 Python 基础语法
1.1 Hello World
相信大家都有这种经验,学习任何一门语言时,入门的都是输出 Hello World,下面我们就来看看如何使用 Python 来输入 Hello World:
print("Hello World")
sum = 1 + 2
print("sum = %d" %sum)
>>>
Hello World
sum = 3
print 函数,用来在控制台打印输出,sum = 语法是声明变量并赋值,%d 是用来做字符串替换。
1.2 数据类型和变量
列表
list1 = ["1", "2", "test"]
print(list1)
list1.append("hello")
print(lists)
>>>
['1', '2', 'test']
['1', '2', 'test', 'hello']
list 是 Python 内置的一种数据类型,是一种有序的集合,可以随时添加和删除其中的元素。
元组
tuple1 = ("zhangsan", "lisi")
print(tuple1[0])
>>>
zhangsan
tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改.
字典
dict1 = {"name1": "zhangsan", "name2": "lisi", "name3": "wangwu"}
dict1["name1"]
>>>
'zhangsan'
Python 内置了字典:dict 全称 dictionary,在其他语言中也称为 map,使用键-值(key-value)存储,具有极快的查找速度。
集合
s = set([1, 2, 3])
print(s)
>>>
{1, 2, 3}
set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 key。
变量
变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
a = 1
a = 3
print(a)
>>>
3
1.3 条件判断
age = 30
if age >= 18:
print('your age is', age)
print('good')
else:
Print('your are not belong here')
>>>
your age is 30
good
if … else… 是非常经典的条件判断语句,if 后面接条件表达式,如果成立,则执行下面的语句,否则执行 else 后面的语句。同时还要注意,Python 语言是采用代码缩进的方式来判断代码块的,一般是四个空格或者一个 tab,两者不要混用。
1.4 循环语句
names = {"zhangsan", "lisi", "wangwu"}
for name in names:
print(name)
>>>
lisi
zhangsan
wangwu
names 是一个集合,为可迭代对象,使用 for 循环,name 会依次被赋值给 names 中的元素值。
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
>>>
2500
在循环内部变量 n不断自减,直到变为-1时,不再满足 while 条件,循环退出。
1.5 高级特性
切片
L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(L[1])
print(L[1:3])
>>>
lisi
['lisi', 'wangwu']
Python 中,下标都是从 0 开始的,且都是左闭右开区间
迭代
对于列表、元组和字典,都是可迭代对象,可以使用 for 来进行迭代取值
L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
D = {"zhangsan":1, "lisi": 2, "wangwu": 3, "zhaoliu": 4}
for l in L:
print(l)
print('\n')
for k,v in D.items():
print("键:", k, ",", "值", v)
>>>
zhangsan
lisi
wangwu
zhaoliu键: zhangsan , 值 1
键: lisi , 值 2
键: wangwu , 值 3
键: zhaoliu , 值 4
对于字典,使用 items(),可是同时遍历键值对
1.6 函数
调用函数
Python 内置了很多有用的函数,我们可以直接调用。
>>> abs(100)
100
>>> abs(-20)
20
>>> abs(12.34)
12.34
>>> max(1, 2)
2
>>> max(2, 3, 1, -5)
3
在调用函数时,如果传入的参数有问题,程序会抛出异常。 这里包含了 Python 中所有的内置函数: 内置函数 — Python 3.12.1 文档
定义函数
在 Python 中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
def add(num1, num2):
return num1 + num2result = add(1,2)
print(result)
>>>
3
在代码中,定义了一个叫做 add 的函数,它会接收两个参数,并且会返回他们之和。函数定义之后,可以使用函数名称后面跟()来调用,如果函数有返回值,可以赋给一个变量来接收。
1.7 模块
调用模块
Python 本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。
import time
def sayTime():
now = time.time()
return nownowtime = sayTime()
print(nowtime)
>>>
1566550687.642805
使用 import 来导入模块,之后就可以调用该模块为我们提供的各种方法变量等。
模块说白了就是一组工具的集合,我们当然可以自己编写一些工具,然后组成自己的模块,供后面编程使用。
我们自己编写模块,一般目录结构如下
mytest ├─ __init__.py ├─ test1.py └─ test2.py
现在我们就可以在其他的文件中引用并调用这两个 test 工具文件了
import mytest mytest.test1
你应该注意到了 __init__.py
文件,这个文件可以是空文件,包含了 __init__.py
文件的文件夹就是一个”包“(Package)。如果我们需要像上面那样引用文件,就必须包含 __init__.py
文件。
安装第三方模块
在 Python 中,安装第三方模块,是通过包管理工具 pip 完成的。
一般来说,第三方库都会在 Python 官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者 pypi 上搜索,比如 Pillow 的名称叫Pillow,因此,安装 Pillow 的命令就是:
pip install Pillow
1.7 面向对象编程
类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如 Student 类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
在 Python 中,使用 class 关键字来定义类
class Student(object): pass
定义好类之后,就可以实例化该类了
zhangsan = Student()
zhangsan.age = 20
print(Student)
print(zhangsan)
print(zhangsan.age)
>>>
<class '__main__.Student'>
&l