第一个Python小程序全记录
这一阵子迷上了Python.
因为是零基础的计算机小白,对于现在的主流语言一窍不通的我,选择了学习Python这门易上手
,实用性强
的语言.
于是,便诞生了这篇文章——一个纯小白第一次写Python程序的全记录.
什么是Python
虽然一开头就介绍了Python的两个特点,但不过是寥寥.
我们来看一下维基百科对Python的解释:
Python
通用高级编程语言
是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。
过多的不再赘述,总之都突出了Python这门工具语言
的强大之处.
开始Python的准备
- 如果你是Windows用户
去这里下载一个Python并安装(注意添加到环境变量).
- 如果你是Linux用户
使用对应的包管理器进行安装即可(顺便安装一下python3-pip插件库)
- 如果你只有手机
嗯,使用Termux随时随地编写Python程序也很方便呢
在安装完成后,打开终端输入命令以检查Python
是否安装成功:
1 | python |
此时终端进入类似如下状态,则说明Python
安装成功:
1 | Python 3.10.0 (default, Oct 31 2021, 01:09:07) [Clang 12.0.8 (https://android.googlesource.com/toolchain/llvm-project c935d99d7 on linux |
Tips:
Ctrl D
退出.
输入命令查看pip3
是否安装成功:
1 | pip3 -V |
此时终端返回类似如下数据,则说明pip3
安装成功:
1 | pip 21.3.1 from /data/data/com.termux/files/usr/lib/python3.10/site-packages/pip (python 3.10) |
补充说明:
pip3
是Python3
官方的一个强大的插件库,必不可少.
开始编写第一个程序
俗话说,万事"Hello World!"
为先 那么我们就写一个程序以输出它吧!
补充说明:
"Hello World!"
已经成为了一种不成文的规定——即一种语言的学习先从输出"Hello World!"
开始.
在命令行输入python
以进入即时交互状态.
补充说明:表现了Python的面向对象性与反射性.
终端出现>>>
时即可输入:
1 | print("Hello World!") |
回车执行:
1 | print("Hello World!") |
看到这样的结果时,恭喜你!
你已经完成了一个简单Python程序的编写!
较为高级的”Hello World!”
一个程序不可能只有机器一直在输出——更何况是对于Python这种交互式语言
.
那么我们就可以换一个高级一点儿的方法来实现交互式地输出”Hello World”:
- 定义一个变量,其内容为”Hello World!”:
1 | var = "Hello World!" |
- 输出该变量:
1 | print(var) |
回车执行:
1 | "Hello World!" var = |
是不是比刚刚的高级一些了呢?但是仍然没有交互.
我们交互一下:
- 定义一个
可写入变量
:
1 | var = input("请输入Hello World:") |
- 输出该变量:
1 | print(var) |
回车执行:
1 | input("请输入Hello World:") var = |
好了,现在的你已经可以写出更复杂的Python程序了!
插件的使用——requests
requests
是Python一个最为有力之一的插件.
其主要功能与目的就是:让机器像人一样访问互联网
.
具体是什么意思呢?我在这里举个例子.
平常我们浏览网页时,页面都是花花绿绿,甚是好看的(我的也是🌚)
而我们却不会在意浏览的html页面
中包含哪些元素
.
因为浏览器已经在瞬间帮助我们做好了渲染
工作.
而requests模块的存在,让机器读取html页面
变得可能:
因此,这就好像你的Python程序在自己上网一样.
不过程序没有对图形化界面
的分析能力,只能从html页面上下手.
久而久之,requests成为了爬虫
必不可少的工作.
我们来说明一个实例吧!
打开终端,首先安装requests插件
:
1 | pip3 install requests |
随后输入python
进入交互模式,
输入:
1 | import requests ##导入requests插件 |
我们来看看运行结果:
是不是很神奇?返回并且输出了HTML代码呢!
但是里面有很多我们不需要的东西
,比如标签什么的.
那么我们怎么筛选呢?
Tips:关于requestss的更多,强烈建议看看这个!
插件的使用——json
json是一种人类可读
的语言,我将其称为条理清晰的卡片语言
.
为什么这么说呢,看一张图就明白了:
这种格式简直比HTML好看不止一点点啊!
而此时我们访问的这个url,便是下一个子标题要说明的API
.
不懂没有关系!把上一个子标题中的url换一个即可.
1 | import requests |
结果如图所示:
可以看到,返回了一大串数据,但却不像HTML一样杂乱.
这种格式就叫做json!
那么怎么实现只输出想要的那部分呢?比如说我只想输出返回数据中的”还是会想你”,怎么做呢?
我们来观察一下数据,”还是会想你”在’searchWord’这个东西后面跟着,
而在这些之前,他们都被包括在一个名为’data’的东西里.
所以,我们只要先输出’data’,再输出’searchWord’就行了!
我们来试一下:
最后,我们通过输出temp['data'][0]['searchWord']
这个东西,来实现了输出”还是会想你”.
再来分析一遍:
第一次我输出了temp['data']
,可以看到原本开头的code
等东西都被过滤了.
随后,我输出了print(temp['data'][0]
,这个[0]
是什么呢?其实就是data列表里的第一个数据罢了.
Tips:在编程语言中,0通常代表第一个.
所以这次过滤完后,只保存了跟”还是会想你”有关的那一组的信息,
接着,我们输出了这个名字所在的’searchWord’位置,做法是输出print(temp['data'][0]['searchWord']
.
由此可见,输出特定内容,只需要加[内容]
即可.
而这也正是json的好处——没有多少关键字,内容可选择程度高.
那么什么样的链接可以返回给我们json数据呢?
认识API
API说白了就是没有花花绿绿页面的网站,其名又为应用程序接口
.
譬如上一个子标题出现的例子:
它没有返回大量无用的HTML标签等
它完成了
我没有打开网易云却查看了热搜榜
这样一个任务
是不是又很神奇?而单单一个网易云,就有200多个像这样的API(比如说看歌词,看评论等)
关于如何搭建API我是不清楚啦,不过现在市面上免费的API不少,都可以用来学习.
只需要把requests.get(url)里url换成API网址即可.