Python领进门(一)零基础开始学习

Python 第一课

背景知识

Why Python?

首先,作为一个小白,你需要知道Python是一种高级编程语言。那么,什么是编程语言呢?

我们日常说话、阅读、写作所用的语言成为自然语言,也就是人类的语言,包括中文、英语。(当然如果硬杠,鸟语,或者其它动物的语言也可以算作自然语言)
让计算机理解自然语言,并且从自然语言中提取有效信息也是当前人工智能领域非常热门的研究方向,也就是自然语言处理(NLP)

而所谓编程语言,就是计算机可以直接“理解”并且执行的语言,同时人类也可以比较容易的识别这种语言,从而可以利用这种语言定义计算机所需要采取的行动。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。(摘自廖雪峰博客,顺便一提,廖雪峰的博客非常适合初学者学习Python)

那Python高级在哪里呢?
这个高级并不是说这个语言高大上,这就好像基础学科和应用学科的关系。我们不能说应用学科比基础学科,有的时候我们可能还会有基础学科更加高级的错觉(因为学不懂啊,比如量子色动力学QCD,你看得懂是什么嘛)。

这个高级是指Python集成打包了很多功能,所以实现类似的功能,你用Fortran或者C语言,可能需要几百行代码,这就使得程序开发和优化以及debug的过程非常困难。而使用Python,可能只需要几行,简单易读,方便修改和找错。当然了,这个代码量也是因人而异的,比如同样的功能,你写需要几百行,我写可能就只需要1行,运行起来还比你快,你气不气?所以,人生苦短,我用Python。

当然了,这并不是说Python就比C或者Fortran这样的语言强(虽然我觉得差不多就这样)。因为Python是一门脚本语言,因为各种我很难给你讲清楚的原因呢, Python运行起来比较慢,而C语言和Fortran的运行速度就很快(当然你得有本事写出来),和Python完全不是一个量级。所以在大规模科学计算,比如物理模型这样的东西,就会采用Fortran和C。

而且,Python有很多的包可以用,这些包集成了很多你可能会用得到的功能。比如数据分析,你想做一个最小二乘拟合,你可以完全忘记公式,直接调用Python包里的某些函数来帮你完成。

Tensorflow

我希望在之后的博客中加入一些大数据处理和机器学习相关的内容,所以在这里先简单介绍一下。

现在你需要知道什么呢,这玩意可以用来做机器学习,而且大佬们都用这个,贼好用。(什么?你不知道什么是机器学习?那我觉得你至少要有一个朴素的认识,如果瞎凑热闹,右上关闭浏览器)

这个东西可以在Python里用。

用这个东西的步骤很简单,建模(所谓的符号数学系统)、扔数据(数据流,用张量表示)、训练。

基本操作

安装Anaconda

Anaconda是目前最常用的Python的集成编译环境(IDE)之一,我推荐用这个。什么是集成编译环境呢?就好像一本字典,但是这本字典是给电脑用的,让电脑知道你的代码是让他做什么工作,并且它还包括了很多你和电脑交流用的工具,比如当电脑不明白你的意思或者理解错你的意思(bug)的时候,它会帮助你修正你的代码。

注意!Python里也有字典的概念,不要混淆了!

Anaconda: https://www.anaconda.com/
请大胆点击,没有毒的!英文界面,自行找地方下载!

下载好以后就和安装其它软件一样安装就好了,然后需要注意的是,当出现:
Add conda to you environmental PATH
这个选项的时候,一定要勾上!不然到时候手动添加还挺麻烦的。

分享一下mac怎么装anaconda:
https://blog.csdn.net/lq_547762983/article/details/81003528

安装好anaconda以后,我们打开它自带的可视化编辑界面spyder,打开以后长这样:
在这里插入图片描述
我们可以看到最上面是菜单栏,从左到右依次是新建、打开、保存,这个和其它软件类似。
在这里插入图片描述
然后看到右边的绿色的箭头按钮,表示运行,快捷键是F5.
在这里插入图片描述
左边白色的框是文本编辑器,可以用来快捷的编写脚本文件,用法和记事本什么的类似。
在这里插入图片描述然后右侧分成两个部分,对于上面的部分,从左到右依次有三个选项卡,分别是变量监视、路径管理和帮助窗口,一般最常用的是变量监视,它会显示当前用户所定义的变量信息。
在这里插入图片描述
然后这个窗口上方还有一个路径菜单,显示当前所在目录:
在这里插入图片描述
右下的对话框是基于ipython的命令行窗口,用于即时运行指令,比如我们可以输入1+1,然后回车:
在这里插入图片描述安装anaconda以后我们还可以在命令行窗口(cmd)运行python。
首先打开命令行窗口,win+R,输入cmd,然后回车,macOS下直接打开终端。
!!注意这里的命令行窗口和上面的命令行窗口不是一个东西!!他们都是命令行窗口,但是一个是python的,一个是你这台计算机的。(就好比你的电脑我的电脑都是电脑,但是你的电脑不是我的电脑)
在命令行窗口输入python或者ipython即可:
在这里插入图片描述
在这里插入图片描述
体会一下,ipython和python的命令行有什么不一样?
然后,介绍两个常用的命令,注意是在计算机命令行下使用的:

一个是ls(win下是dir),用于显示当前目录或者路径下的所有内容。另一个是cd [路径],表示到某个路径下。其中.代表当前路径,. .代表上一级路径。
给个例子:
在这里插入图片描述

Hello world!

开始学习一种新语言,我们一般会从编写一个Hello world文件开始:
在文本编辑窗口编辑如下:
在这里插入图片描述
然后F5运行,在命令行窗口显示:
在这里插入图片描述
编写hello world的意义在于熟悉语言的基本语法和输入输出(IO)。
注意,hello world需要用引号引起来,表示一个字符串,字符串是python的常用变量类型之一。
如果不加引号,首先会报错Syntax error,表示语法错误,因为解释器不能识别句中的空格和感叹号!,这类字符往往是具有特殊语法作用的,使用时要特别注意。
如果写成这样呢:

print(helloworld)

那么命令行窗口将会显示报错

NameError: name 'helloworld' is not defined

解释器会认为helloworld是一个变量名,但是这个变量名并没有被定义,所以会返回报错。python中的变量会需要一个变量名来代表,就想数学中的x, y, z,他们可以等于任何数,甚至其它类型的变量(比如刚刚提到的字符串)。变量名原则上可以随便写,但一般会按照实际意义来命名,方便阅读,python的变量名由字母开头,可以包含下划线和数字组合。

比如,我们可以把‘hello world!’这个字符串存在变量line中:

line='hello world!'
print(line)

运行后得到:

hello world!

这里需要建立变量的概念!

接下来我们介绍一些写代码的好习惯
首先,python的函数、句柄和已经定义的变量,可以用tab键自动补齐,即只需要输入一部分开头字母,IDE就会帮你自动写完。看不懂什么意思?自己试试就明白了!
其次,我们在编写脚本的时候可以适当的加入无意义的空格和换行,增加程序可读性,比如刚才的代码可以改写为:

line = 'hello world!'

print( line )

pip install 和conda install

python的一大好处是有大量的程序包或者库可以使用,这些库可以帮助开发者完成大量的重复性工作。我们可以利用pip install 和conda install 来安装这些库:

比如我们可以尝试一下在win的命令行窗口下(或者macOS的终端下,注意不是python的命令行)输入:

pip install netCDF4

然后再试试:

conda install netCDF4

注意体会一下两者区别哦!

怎样编写一个脚本

编写一个脚本首先需要导入所需要的库,比如numpy,一个常用的的做数据处理的基础库文件,在anaconda中会自带这个库:
一下几种方式都可以导入这个库:

import numpy as np #之后使用numpy中的函数时需要用np.[函数名]
from numpy import * #直接使用函数名,引用多个库时重名函数会被覆盖
from numpy import array as ay #只导入array这一个函数,并重命名为ay
from numpy import array #只导入array
from numpy import array, zeros #只导入array和zeros

然后我们可以使用这些库里的函数,比如我们希望定义一个从1到5的数组,然后求和:

from numpy import *

a = array([1,2,3,4,5]) #[]代表一个list, list是python基本数据类型之一。可以参见廖雪峰博客。
#我们也可以写成这样
#temp = [1,2,3,4,5]
#a = array(temp)
#求和的话,我们可以用for循环完成。
s = 0 #必须初始化一下,不然当解释器第一次遇到s时不知道s是什么,等于多少
for t in a: #直接翻译就可以了,对于每一a中的元素t,进行一下操作,这里的t会自动赋值为a中的元素,所以不需要像s一样初始化。
    s += t #相当于s = s + t,注意前面的退行,代表这些内容是在for循环里的,注意退行和:的配合使用
print(s)
##即可输出a的求和结果了。
##我们也可以直接使用numpy里的函数
print(a.sum())
##或者
print(sum(a))

什么是对象?

python中所有的变量、函数等等都是对象,它可以包括所需要储存的数据(包括值、字符等等),可能需要对数据进行的操作、运算(比如上面用到的a.sum(),数组a就是一个对象,sum是它包括的运算)
其它的可以参见廖雪峰博客
https://www.liaoxuefeng.com/wiki/1016959663602400/1017495723838528

常用数据类型

这里可以先介绍一下数组,除了刚才我们提到的从list定义数组,我们还可以这样定义数组:

from numpy import *

a = zeros(3) #定义一个数组[0,0,0]
b = ones([2,2]) #定义一个数组[[1,1],[1,1]]
print(a[0]) #打印a中的第一个元素,注意是从0开始的
print(b[1,1]) #打印b1,1 , 注意b是二维数组,有两个脚标
print(a[-1]) #倒数第一个
print(a[0:2]) #注意!!!!是打印a0,a1没有a2

作业

阅读并练习廖雪峰博客https://www.liaoxuefeng.com/wiki/1016959663602400/1017092876846880
中的python基础 -> 使用list和tuple到使用dict和set,一共四个部分,tuple和set可能会用得比较少,可以选择性挑一挑重点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值