Python起航
安装Python
安装python
添加python安装目录到PATH
添加Scripts目录到PATH
如果同时安装了python2和python3,那么通过python和python3,pip和pip3来加以区别(当然也可以给exe文件重命名)
PIP常用命令
pip install 安装包
pip install search 查找包
pip list 列出已安装的包
pip show django 查看已安装包的具体信息
pip uninstall 卸载包
安装包
1、通过pip
2、tar.gz安装
python3 setup.py install
3、.whl文件安装
pip install xxx.whl
导入包
import 包名
import一个模块或者库的时候,python首先查找当前目录下是否存在同名的py文件,如果存在则会优先引用当前目录下的同名文件
举例:当前目录下存在一个unittest.py,当在这个目录下引入包的时候,引入的就是这个py而不是单元测试的那个模块。所以文件命名时注意下。
快速排错
在python执行的错误栈中找到自己写的程序
看最后一行的错误提示
变量
1、不能使用关键字作为变量的名字,判断是不是关键字的方法
import keyword
keyword.iskeyword("is")
2、 识别变量 type, id, dir, help
type(a) //返回变量的类型,python是一种弱类型语言,在声明变量的时候不需要指明类型
id(a) //变量的内存地址, python中的变量都是对象,可以根据id函数的返回值判断两个对象是不是同一个对象
dir(a) //列举出变量a这个对象有哪些成员方法可以调用.
help(a.方法名) //列举出a这个变量对应的这些方法的使用方式
例如: s = "abcdbd";
help(s.count)用来查看s对象的count方法的使用帮助.
s.count(sub[,start[,end]])-->int //在api文档中[]中的内容代表的是可选的内容.
sub[,start[,end]]是方法的参数(输入),int是方法的输出.sub在此处的意思是子串
s.count('b')结果是2,即'b'这个子串在s中出现了2次
根据这个方法的帮助说明,还可以看出,子串可以指定从哪个位置开始查找,在这个位置之前的都不会计入count,start代表的是索引,从0开始.
3、 删除变量
del 变量名
4、 基本变量类型
bool True, False (开头要大写)
int 12, 2000,-0X10
long 100L (以L结尾)
float 100.1, 2.1E-3, 23.0E2
complex 100+10j, -2-3j(复数,作为了解)
str '2332'(单引号),"absf"(双引号), """abcde"""(三个双引号), '''acde'''(三个单引号)
三引号的可以跨行写值。如: s = """sbc
cde
"""
此时直接通过s,可以看到s的值是“sbc\ncde\n”, \n代表的是换行,这种声明方式其实等同于 s=“sbc\ncde\n”
当字符串中间有引号的时候需要使用转以(\)来表示
s ="abc\"def"
单引号中间可以嵌套双引号s='abc"BOM"haha', 双引号中间也可以嵌套单引号 s = "abc'QQ'nim"
但是不可以双引号中间有双引号,如s="aaa"niha"o"这样是语法错误的.此时必须使用转义。
5、数据类型转换
int函数能够把符合数学格式的数字型字符串转换成整数,也可以把浮点数转换成整数,但是只是简单的取整,而非四舍五入。
aa = int("124") #Correct
print "aa = ", aa #result=124
bb = int(123.45) #correct
print "bb = ", bb #result=123
cc = int("-123.45") #Error,Can't Convert to int
print "cc = ",cc
dd = int("34a") #Error,Can't Convert to int
print "dd = ",dd
ee = int("12.3") #Error,Can't Convert to int
print ee
float函数将整数和字符串转换成浮点数。
str函数将数字转换成字符
6、进制转换
hex # 10进制转16进制
oct # 10进制8进制
chr # 将一个ascii码转为一个字符
ord # 将一个字符转为一个ascii码
int(s,base=xx) # 将s转为十进制整数,默认是int(s,base=10),即将s看做10进制数,然后进行转换
int(s,base=2) # 将基数s视为2进制数,转为10进制数
7、输入输出函数
7.1 输出函数 print
print >> sys.stderr, "Fatal error: invalid input !"
logfile=open('mylog.txt', 'w') //file对象的模式包括 'r'(只读) 'w'(清空后写) 'a'(追加), 注意如果mylog.txt不存在的话会自动创建该文件
print >>logfile, "Fatal error: invalid input !"
print "float:%.4f, %s is number %d!"%(12.1234567,"python",1) //%.4f表示保留4位小数
7.2 输入函数raw_input和input
a=raw_input(),_在交互模式下表示上一个输入
raw_input和input的区别:raw_input原样输入,函数返回类型是str; input会根据输入判断返回类型,如"123"则返回类型是str,输入123则返回类型是int.
8、字符串基本操作
9、dict基础操作
key不变,value可变 a={key:value}
c = {'uid': 105,'login': 'beauty','name': 'James'}
u = c['uid'] # 取元素
c['uid'] = "test" # 赋值
c.get('perf', 'Unknown') # 取key为perf的值,取不到的话,就取Unknown作为值
c.keys() # 得到c的所有key的一个list
c.values() # 得到c的所有values的一个list
c.items() # 得到c的所有(key, values)的一个list, [('login', 'beauty'), ('uid', 106), ('name', 'James')]
d = c.copy() # 定义一个d,将c所有的元素复制一份给d,此时del(c['login'])只会删除c里面的login键值对,对d里面的没有影响
c[2] = 3 # 给c添加一个键值对
c.update(d) # 参照d更新c的内容,如果d里面包含c中没有的元素,就将改元素,也添加一个给c
10、小括号是tuple(元组),中括号是list,大括号是dict
11、list,dict遍历
list遍历: d=["name","pyton","english",33,"match",35]
for i in d:
print i
for id,i in enumerate(d):
printid,i dict遍历: items()
keys()
values() dict1={"name":"python","english":33,"math":35}
for k,v in dict1.items()
print(k,v)
for k in dict1.keys():
print(dict1[k])
12、运算符
算数运算符:
+ 加法
- 减法
* 乘法
/ 除法,包括小数
% 取余
** 指数。如2**3=8
// 地板除,仅保留整数部分。例如 7.2/3=2.4 而7.2//3=2.0 逻辑运算符:
and
or
not 位运算符:
>> << & | ^ ~(按位取反) bool运算符:
True
False, 包括 0 False 0.0 0+0j '' () [] {}
13、注释语句
单行注释使用 #
多行注释使用 ''' 或 """
14、赋值语句
a=10
a=b=10
a=(b=1)
a=a+10
a+=1
a-=1
+= -= *= /= %= **= <<= >>= &= ^= |=
a,b=1,2
a,b=b,a交换a和b的值
15、条件语句
if exp
statList
elif exp2
statList2
else
statList3
16、循环语句
while exp:
statList1
else
statList2 for var in vars:
...
else
... break continue for var in vars:
...
17、函数
语法
def functionname(arg1,arg2,*arg3,**arg4)
"""documentation""" #optional doc string
statements
return xxx
#可以返回多个值
例子
def gcd(a,b):
"greatest common divisor"
while a!=0:
a,b=b%a,a #parallel assignment
return b >>>gcd.__doc__ #两个下划线
"greatest common divisor"
>>>gcd(12,20)
4
18、作用域-LGB规则
大多数名字引用在三个作用域中查找:先局部(Local),次之(Global),再次之内置(Builtin)。若仍然找不到这个变量名,则引发NameError异常。 在函数内定义一个全局变量
global a a="hell"
def f():
a="xxx"
print type(a),a
f()
print(a)//打印出来的是hell a="hell"
def f():
global a
a="xxx"
print type(a),a
f()
print(a)//打印出来的是xxx
19、参数分类
普通参数,即命名参数 arg1
带默认值参数 arg2=0,默认参数不能在普通参数前面,但可以在元组参数和字典参数的前面
元组参数 *arg3
词典参数 **arg4
def f(a, b, c=0, d=1, *e):
print(a, b, c, d, e)
f(1, 2) # 1 2 0 1 ()
f(1, 2, 3, 8, 9) # 1 2 3 8 (9,)
def f(a, b, c=0, d=1, *e, **g):
print(a, b, c, d, e, g)
h = ('a', 'b')
f(1, 2, 3, 8, h, a1=2, a2=3) # 1 2 3 8 (('a', 'b'),) {'a1': 2, 'a2': 3}
f(1, 2, 3, 8, h, 'a1=2,a2=3') # 1 2 3 8 (('a', 'b'), 'a1=2,a2=3') {} 必须是key=value的参数才被认为是词典
x = {"a5": 1, "a6": 5}
f(1, 2, 3, 8, h, x) # 1 2 3 8 (('a', 'b'), {'a5': 1, 'a6': 5}) {} 实参h和x会被认为一个元组的两个元素
20、python为什么没有函数重载?
因为通过元组和词典传参就已经达到了重载的效果
21、python函数可以返回多个值吗?
可以,多个元素形成一个元组对象
def g(a, b):
return a, b print(g(1, 2)) # (1,2) c, d = g(1, 2)
print(c, d) # 1 2
22、函数的参数可以是函数吗?
可以,函数的参数可以是任意一个对象
23、局部改变变量值,不影响外部作用域的变量
def func(in_p, out_p):
print(in_p, out_p)
out_p = 3 # 有问题,此处的赋值无法改变函数外部的参数的值, 如下 a, b = 1, 2
func(a, b)
print(a, b) # 1 2
24、pip安装包管理
Python生成requirement :
pip freeze > requirements.txt
使用requirements.txt安装类库:
pip install -r requirement.txt
25、用dict模拟switch
def f1(a):
print(1, a) def f2(b):
print(2, b) def default(d):
print('default', 4) sw = {
'f1': f1,
'f2': f2,
'default': default
}
sw['f1'](4)
sw['f2'](5)
Python起航的更多相关文章
- python基于函数替换的热更新原理介绍
热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码.平常开发中,热更能极大提高程序开发和调试的效率,在修复线上 ...
- Linux实战教学笔记20:初级阶段结束,中级阶段起航
第二十节 第一阶段结束第二阶段起航 标签(空格分隔): Linux实战教学笔记-陈思齐 一,承上 Linux实战教学笔记的基础核心能力阶段也就是第一阶段到此也就告一段落了.如果同学们能基本全都掌握,再 ...
- 4-c++教程起航篇-学习笔记
c++教程起航篇 我们会讲C++那些事,C++与C语言的关系. C++诞生于贝尔实验室. C++之父: 本贾尼·斯特劳斯特卢普 C++社区排行榜 最新排行,c++排名第三,Python排名第四 C++ ...
- 【转】windows下python开发环境搭建
1 -- 安装python的前期准备 Python开发有众多工具,又以Eclipse+Pydev最为常见.Eclipse平台对开发同学来讲,肯定是如雷贯耳,自不用废话.而PyDev是Eclipse平台 ...
- SQLite3 of python
SQLite3 of python 一.SQLite3 数据库 SQLite3 可使用 sqlite3 模块与 Python 进行集成,一般 python 2.5 以上版本默认自带了sqlite3模块 ...
- Python实现海贼王的歌词组成词云图
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:一粒米饭 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利, ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
随机推荐
- Oracle数据库导入csv文件(sqlldr命令行)
1.说明 Oracle数据库导入csv文件, 当csv文件较小时, 可以使用数据库管理工具, 比如DBevaer导入到数据库, 当csv文件很大时, 可以使用Oracle提供的sqlldr命令行工具, ...
- nginx之location、inmp架构详解、BBS项目部署
本期内容概要 location lnmp架构 部署BBS项目 内容详细 1.location 使用Nginx Location可以控制访问网站的路径 但一个server可以有多个location配置 ...
- strict weak ordering导致公司级故障
大家好,我是雨乐! 前段时间,某个同事找我倾诉,说是因为strict weak ordering导致程序coredump,给公司造成数百万损失,最终评级故障为P0级,年终奖都有点不保了,听完不禁一阵唏 ...
- [ vue ] 自定义组件的 v-model 理解
需求场景描述: 1. 在父组件 myself.vue 里面定义数据 button_val 2. 在父组件 myself.vue.里面定义按钮,它的功能是吧 button_val 的值 -1 ---- ...
- 怎样用命令行导入注册表 .reg 文件
https://stackoverflow.com/questions/49676660/how-to-run-the-reg-file-using-powershell Get-Command re ...
- CentOS 7 把已登录的用户断开
1. 查看登陆用户 [root@localhost ~]# w 18:29:30 up 377 days, 8:44, 4 users, load average: 0.05, 0.12, 0.09 ...
- JAVA自定义连接池原理设计(一)
一,概述 本人认为在开发过程中,需要挑战更高的阶段和更优的代码,虽然在真正开发工作中,代码质量和按时交付项目功能相比总是无足轻重.但是个人认为开发是一条任重而道远的路.现在本人在网上找到一个自定义连接 ...
- 展示html/javascript/css------Live-Server服务器
Live-server简介 这是一款带有热加载功能的小型开发服务器.用它来展示你的HTML / JavaScript / CSS,但不能用于部署最终的网站. 官网地址:https://www.npmj ...
- 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在日常开发中,我们需要给前端提供文档化的API接口定义,甚至需要模拟架设一个fake服务用来调试接口字段.或者对于后端开发人员 ...
- Android一句话 | ViewGroup事件分发
ViewGroup中可重写的关于事件分发的事件有dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent和requestDisallowInterce ...