【python教程入门学习】基础篇: 1. Python入门小应用

x33g5p2x  于2021-12-30 转载在 Python  
字(3.1k)|赞(0)|评价(0)|浏览(477)

从厂里离职快2个月了,一直想做个完整的Python回忆录,回顾一下这5年的Python生涯。我对Python印象,都是在于这个语言编写速度快上面,以前做过Java和C++的开发,在于开发速度上面,Python的确无与伦比(我从来不喜欢比较哪个语言好坏,用什么语言要看团队和个人的偏好),简洁的语法,丰富的第三方包模块,在开发上面提供非常大的助力。

1. 开发环境

讲具体内容前,先说明一下我的开发环境与开发习惯:

  • 使用的系统: Debian 9(MacOS的PD或者VMWARE WORKSTATAION 11)
  • 编辑器: Sublime text 3
  • Python版本: 2.7.13

我喜欢在Linux环境下编写和调试程序,这和Windows上面使用IDE有什么区别呢?第一,调试的环境与外网服务器运行环境保持了一致,这样会避免很多系统兼容问题,现在大部分的服务器都是Linux的发行版本,主要以Debian系和RedHat系两种为主,我以前厂里使用Debian系,所以我也习惯使用Debian作为开发环境,当然新手可以用Ubuntu也一样,Ubuntu基于Debian上开发的。第二,在Linux环境下编写程序,思维会更习惯服务器上面的运行环境架构,就像学英语在非英语国家内也可以学,但真正要掌握英语和外国人去沟通,有条件当然是去到英语国家生活更好。由于现在大部分公司都要求Windows系统,所以使用这些系统可以用VMWare和
PD来安装,Vmware我用的是11,Mac的PD(Paralle desktop)用的哪个版本都差不多,目前我是用14。

选择Sublime text 3,而不用大名鼎鼎的Pycharm,第一点是因为Subl够简单,而Pycharm实在很笨重。第二点是Subl更专注于编写程序上面,更体现一个人的对这个语言的掌握吧,有Pycharm提示是比较方便,但Python语言本来就足够简单了,初学者可以考虑使用Subl来锻炼自己对Python的一个掌握。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架尉♥信(同音):276 3177 065 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

然后是Python版本,我厂里一直都是用Python2.7,没升级到Python3,所以整篇回忆录都是基于Python2.7的,可能要问Python3好还是2.7好,我觉得当然是新的好,但有历史原因,历史原因是什么?就是以前很多程序都是用Python2.7来写的,升级上去的话,很多系统甚至脚本都需要调整,在业务繁忙的部门里面,这浩大的改造工程就只能等到不得不才进行。

最后这些软件的安装可以参考网上的文章,我就不展开来谈了。

2. 第一个例子:JSON格式化输出

先来一个入门例子,做个JSON格式化输出,输入的参数一个JSON文件的文件名,运行方式是在终端Terminal下执行命令python json_pretty.py json_file.json,而json_pretty.py是程序文件名,而json_file.json是要格式化的json文件名,注意的是,这个程序并不会修改json_file.json的内容,只是将它内容格式化输出到屏幕上。下面是执行的结果输出:

{
    "name": "Tom", 
    "nums": [
        1, 
        2, 
        3, 
        4, 
        5, 
        6, 
        7
    ]
}

json_pretty.py的内容如下:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import json

def main():
    # 从命令行中获取文件名参数,argv[0]是程序文件名
    fname = sys.argv[1]
    # f是文件描述符
    f = open(fname, "r")
    # 读取文件所有内容
    content = f.read()
    # 关闭文件描述符
    f.close()
    # 加载json,转换为python基本数据类型dict
    content_dict = json.loads(content)
    # 格式化输出,indent=4等于表示缩进4个空格
    pretty_content = json.dumps(content_dict, indent=4)
    # 打印
    print(pretty_content)

if __name__ == '__main__':
    main()
  • 第1、2行是python的文件头,尽量所有python文件以两行开头,至于解决什么问题,后面再详细说。
  • 第3、4行是导入依赖模块,导入了sys和json包,这样才可以使用到它们提供的方法。
  • main是一个方法,if那个一行是如果识别到作为单独主文件来执行才会执行的main()方法。意思是当我们运行python json_pretty.py json_file.json就会判断到if为true,然后执行main方法,作为主文件执行时,__name__值为__main__,这些都是高级内容,有个简单了解就好。

json_file.json的内容如下,它的

{"name":"Tom",  "nums":[1,2,3,4,5,6,7]}

目录结构是:

├── json_file.json
└── json_pretty.py

手打代码是学习最好的方式,不去真实地运行一遍,永远都不会发现实际遇到的问题。这个程序其实python直接就有提供可以使用的工具,执行python -m json.tool json_file.json命令,和上面输出的结果是一样的。

3. 第二个例子: Hello World的FlaskWeb应用

Flask是Python大名鼎鼎的Web框架,非常轻量而且功能强大,我厂的HTTP接口都是使用Flask开发的。先用Flask做一个简单的JSON接口,输出{"name": "hello world"}。Flask需要安装包到Pyth
on目录里面,可以查阅文档看看怎么安装。安装了之后,编写文件

## 编辑文件hello.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return '{"name": "hellow world"}'

if __name__ == '__main__':
    app.run(port=8080)
## 
# 终端下执行
python hello.py
# 在另一个终端,请求地址,也可以去到浏览器访问虚拟机上面的8080端口
curl "http://localhost:8080/"

上面的命令解释如下:

  1. 前两句是创建文件夹flask_app
  2. 编辑文件hello.py,这是Flask的web程序启动入口文件。
  3. 文件内容是从Flask中的例子进行修改的,原来例子还要使用flask run命令进行启动,而修改后就可以随意更换端口运行了,比较接近真相。
  4. @app.route是接口地址的装饰符,表示"/"都路由到这个接口,Flask的路由非常强大而简单。

4. 小结

通过上面的两个入门例子,来展现一下Python的强大,用这么少的代码就可以写出一个可用的json工具和web例子,相对比其他静态语言是不可想象的。所以Python有句话:”人生苦短,我用Python“,用更少的时间完成更多的功能,这样我们的人生可以有更多时间陪伴家人,而不是每天都在无止境的加班中。

相关文章