python入门要点分析

这篇文章的初衷是总结这一个月以来学习和使用python的要点,基于MSRA的python for beginners以及牛客图书馆的python 3,还有平时查询相关文章的总结。
简单说就是笔记的流水账,想到哪写到哪吧!

1.开发环境

不可避免地,开始python开发前是环境的部署。这里采用win10+python 3.6+vscode。python 2.7面临不再维护,毫无疑问,应该体验python3的先进性,可以更多地接触到python里面的黑魔法还有语法糖还是非常有趣的。就像decorator, lambda, iteration, with这些都好有趣!3.8新出的海象操作符:=也是萌萌哒的。 另外本来一直用pycharm或者sublime的我,发现jupyter lab(notebook)很适合教程学习,而vscode更是神器(满足了当初我对sublime进化版的所有想象,关键没广告,界面也亲切!)

至于jupyter lab作为开发环境的不足是Debug不太方便,单步调试的中间变量查看以及调用栈回溯都找不到。但是vscode一应俱全,而且还能很好的兼容了jupyter notebook,所以大赞一波!在这里插入图片描述
当然严谨的来说,你还需要使用pip3管理包,建议使用python -m pip install的指令安装,严格定义使用当前环境的python解释器。还有创建虚拟环境:1.anaconda,可以参照前面的文章 2.使用virtualenv, python -m venv env_name。最后在VSCODE配置选择使用的环境的python解释器。

2.基本语法要点

1.可变类型:list, set, dictionary
不可变类型: int, float, complex, string, tuple
最大区别在于是否能对本体存储做更改,操作不可变类型一般需要生产新的内存保存结果,对于函数调用而言:可变就是传引用,不可变则是传值

2.排序sort为list的方法list.sort([key,[reverse=True]])
sorted为built-in方法,只要是iterable的数据类型都可用,sorted(list,[key,[reverse=True]]) 其中key接受一个参数的函数定义排序方式(lambda)

3.格式化输出有三种:

print('%.3f %-10.2e' %(float1, exponential1)) #习惯用
print('{0:0.3f} {1:-10.3e}'.format(float1, float2)) #建议用
print( f'{float1} {float2}')

4.import的三种方式

import pprint # 加入pprint命名空间,调用pprint.pprint()
from pprint import pprint #将指定函数pprint()加入到本地命名空间,调用pprint()
from pprint import * #将pprint中所有函数加入到本地命名空间,调用pprint()

建议尽量使用第二种import,避免使用第三种,第三种容易造成函数名冲突

5.指定包的环境配置可以写在requirement.txt里,pip install -r requirement.txt

6.每一个子包(子目录)必须要__init__.py以备父目录的模块可见,可以在里面定义__all__指定from 子模块 import *里面的指定函数

7.调用云API时,注意申请账户,KEY,定义好HTTP请求

import request
import json
response = request.post(address, headers, function_paramter, message_body)
res = response.json()
print(json.dumps(res))

8.处理关键、敏感、配置信息可以放在**.env文件里,.gitignore**包含.env以防信息上传外泄。

9.Decorator用于修饰函数或者类,利用函数闭包,将被修饰的函数放入wrapper里面调用。

10.运算符重载add, sub, mul, truediv,__ floordiv__,mod,pow

11.文件IO一般用with as

with open(filepath, mode) as f:
		   f.read()
		   f.write()

3.python自带模块和函数

import os  #系统命令 getcwd, chdir, chmod, mkdir, listdir
import sys  #系统信息, 程序信息,参数sys.argv
import glob #匹配符 glob
import re #正则匹配 match, search, sub, split 
import math #数学 sqrt, pow, sin, cos, ceil, floor, abs, fabs
import random #随机数 seed, random, randint, choice, shuffle
import urllib.request #HTTP请求 request.post get
import datetime #日期时间 date.today, datetime.now, timedelta 
import timeit #性能分析 timeit(stmt, setup, number)
import zlib #压缩 compress, decompress
import doctest #独立文件测试 testmod
import unittest #单元测试, TestSuite, addTest, TextTestRunner, makeSuite

import builtins #builtin为python2
dir(builtins) #包含各种各样的Warning类和Error异常处理类以及关键字

#一个类包含__init__构造函数,__new__创建实例, __str__定义print()的输出, 
# iterable的定义了__iter__, hashable的定义了__hash__


#常用自带函数
# len, max, min, chr, ord, encode, decode, sorted, range
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值