Python语言知识总结
1. 环境
1.1 Anaconda
抛弃python原生安装方式吧,使用Anaconda才是最省心的。
1.2 Miniconda
Anaconda 太大了,Miniconda才是王道!下载链接:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
2.语法
2.1 文件开头前两行
# !/usr/bin/python
# -*- coding: utf-8 -*-
2.2 函数注解(Parameter annotations)
这是python有一种基于语言层面的函数注释方法
def foo()->'这是函数的注解':
pass
2.3 访问控制
python默认都是public的访问权限。如果需要private的权限,只需在方法或属性的前面加上两个下划线。
class Foo:
def func_public(self)->'公有方法':
pass
def __func_private(self)->'私有方法':
pass
#公有属性
attribute_public = 10
#私有属性
__attribute_private = 20
2.4 字符串拼接数字
利用 str() 函数

s = 'a' + str(1) # s = 'a1'
2.5 多维数组
1.利用NumPy生成数值型多维数组
numpy提供了一种优雅的(一行代码)方式:numpy.zeros()

import numpy as np
table = np.zeros((2, 3), dtype=np.float)
生成的数组如下
[[ 0. 0. 0.]
[ 0. 0. 0.]]
2. List Comprehensions
生成一个 3 * 4 的矩阵,内中元素都为 0.
delta = [[0 for c in range(4)] for r in range(3)]
print(delta)
程序输出
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
2.6 遍历
2.6.1 字典
dict = {'first_name': 'Feng', 'last_name': 'Yubo'}
for (k, v) in dict
print('my ' + k + 'is' + v)
2.7 模块
if __name__ == '__main__':
pass
2.8 字符串访问
s = "abcd"
print(a[0:1]) # a
print(a[1:2]) # b
print(a[1:]) # bcd
2.9 对字典进行排序
按key排序
l = sorted(d.items(), key = lambda x:x[0]) # 默认增序
l = sorted(d.items(), key = lambda x:x[0], reverse=True) # 减序
按value排序
l = sorted(d.items(), key = lambda x:x[1]) # 默认增序
l = sorted(d.items(), key = lambda x:x[1], reverse=True) # 减序
3. GUI
3.1 PyQt5
PyQt5 runs on Python3 and Qt5.8
3.1.1 Installing on windows/Linux
不建议使用pip原生安装,推荐使用Anaconda
3.2 Installing on Anaconda
方法1
开始> 所有程序> anaconda> anaconda prompt
pip install SIP
pip install PyQt5
这时我们使用的是 Anaconda 下的 pip
方法2
我们可以直接在cmd下使用 conda install 这条命令
conda install SIP
conda install PyQt5
3.2 Tkinter
优点:
- 足够简单,一天就能开发出来完整的GUI程序
缺点:
- 开发文档不易检索
- 互联网上中文教程和资源较少
- 遇到有深度的问题不易解决,比如如何设置输入类型控件的默认值都查询不到
- 控件普遍比较低级
3.2.1 控件
Label
obj = tkinter.Label(self)
obj['text'] = 'text of label'
obj.grid(row=r, column=0)
Entry 输入框
obj = thinter.Entry(self)
obj.grid(row=r, column=1)
Combobox 下拉框
该控件需要导入ttk
import tkinter.ttk
obj = ttk.Combobox(self, values=(1,2,3))
obj = grid(row=r, column=1)
3.2.2 布局
grid
需要在构造方法内执行 self.grid(),该布局模式才能被启用
row : 设置控件所在的行
column : 设置控件所在的列
clomnspan : 设置单元格横向跨越的列数
4. 编码规范
| 完整变量名或含义 | 临时变量名 |
|---|---|
| list() | l |
| str() | s |
| tuple() | t |
| a single word | w |
5. 标准库
collections
This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.
deque
Deques are a generalization of stacks and queues (the name is pronounced “deck” and is short for “double-ended queue”). Deques support thread-safe, memory efficient appends and pops from either side of the deque with approximately the same O(1) performance in either direction.
api : reverse()
>>> from collections import deque
>>> l = ['brown', 'read', 'holy', 'bible']
>>> dq = deque(l)
>>> dq.reverse()
deque(['bible', 'holy', 'read', 'brown'])
math.mean in python3 平均数
def mean(numbers):
return float(sum(numbers)) / max(len(numbers), 1)
Reference : https://stackoverflow.com/questions/7716331/calculating-arithmetic-mean-average-in-python
6. 源
6.1 pypi 源
国内源的地址
| 名称 | 地址 |
|---|---|
| 阿里云 | http://mirrors.aliyun.com/pypi/simple/ |
| 中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple/ |
| 豆瓣 | http://pypi.douban.com/simple/ |
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple/ |
使用方法
$ pip3 install {package name} -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
比如,安装 scikit-learn 的命令用例如下
$ pip3 install scikit-learn -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
参考资料
Python语言知识总结的更多相关文章
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- 关于《selenium2自动测试实战--基于Python语言》
关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至 ...
- 如何系统地自学一门Python 语言(转)
转自:http://www.phpxs.com/post/4521 零基础情况下,学一门语言充实下自己,Python,简洁.优美.容易使用,是一个很好的选择.那么如何系统地自学Python呢? 有的人 ...
- 用python语言讲解数据结构与算法
写在前面的话:关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David Ranum编写的<Problem ...
- 《Selenium2自动化测试实战--基于Python语言》 --即将面市
发展历程: <selenium_webdriver(python)第一版> 将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- 适用于 PHP 开发人员的 Python 基础知识
Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...
- 动态语言的灵活性是把双刃剑 -- 以Python语言为例
本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter)的检查问题.这两个问题,本质都是因为动态语言(动态类型语言)的特 ...
随机推荐
- python导入csv/txt文件
1. 导入csv文件 ### python导入csv文件的三种方法 ```python #原始的方式 lines = [line.split(',') for line in open('iris.c ...
- 移动开发--viewport
手机浏览器默认做了2件事情: 一.页面渲染在一个980px(ios,安卓可能有640px或1000多不等)的viewport. 二.缩放 为什么渲染时,要有viewport? 为了排版正确(980px ...
- fullpage插件在移动端弹出键盘页面特殊处理
fullpage插件大家都很熟悉 jquery一款全屏上下滑动的插件. 最近做公司一个活动移动端使用fullpage插件填写input的时候遇见一个问题,手机自带的键盘弹出的时候会把页面顶出去,页面错 ...
- Linux配置eclipse实践
有几年没有在Linux下用eclipse开发了,几年前是在CentOS 7下用eclipse开发的,好像用的还是较新的版本.最近有个项目要求在centos 下卡发,装上eclipse-cdt后,建立项 ...
- POJ 3461 Oulipo(模式串在主串中出现次数 可重叠)
Oulipo [题目链接]Oulipo [题目类型]KMP &题意: 给你两个字符串p和s,求出p在s中出现的次数. &题解: kmpC函数就是解题的,其中也就j=nex[j]难理解一 ...
- ****************VS编码操作实践******************
下面是今天主要练习的内容: 运用到的内容有 {运算符.强制转换.数据类型的运用.转义字符.变量与常量.基本类型的转换等} 1) 首先我们来看 下列的编码是由三大类组成的 ① 定制变量与常量 蓝色部 ...
- windows Server2012 IIS8.0配置安装完整教程
IIS8.0是windows Server2012自带的服务器管理系统,和以往不同,IIS8.0安装和操作都比较简单,界面很简洁,安装也很迅速.今天我们重点完整的演示下Internet Informa ...
- strlen实现
1.strlen函数. 普通版实现方法, int strlen( char *s) { int length = 0; while(*s++) length++; return length; } 优 ...
- codeforces 980D Perfect Groups
题意: 有这样一个问题,给出一个数组,把里面的数字分组,使得每一个组里面的数两两相乘都是完全平方数. 问最少可以分成的组数k是多少. 现在一个人有一个数组,他想知道这个数组的连续子数组中,使得上面的问 ...
- 【2017-03-02】C#集合,结构体,枚举
集合 集合与数组的区别 数组:同一类型,固定长度 集合:不同类型,不固定长度 使用集合前需要: 引用命名空间:using System.Collections; 1.普通集合 定义: Arra ...