安装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起航的更多相关文章

  1. python基于函数替换的热更新原理介绍

    热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码.平常开发中,热更能极大提高程序开发和调试的效率,在修复线上 ...

  2. Linux实战教学笔记20:初级阶段结束,中级阶段起航

    第二十节 第一阶段结束第二阶段起航 标签(空格分隔): Linux实战教学笔记-陈思齐 一,承上 Linux实战教学笔记的基础核心能力阶段也就是第一阶段到此也就告一段落了.如果同学们能基本全都掌握,再 ...

  3. 4-c++教程起航篇-学习笔记

    c++教程起航篇 我们会讲C++那些事,C++与C语言的关系. C++诞生于贝尔实验室. C++之父: 本贾尼·斯特劳斯特卢普 C++社区排行榜 最新排行,c++排名第三,Python排名第四 C++ ...

  4. 【转】windows下python开发环境搭建

    1 -- 安装python的前期准备 Python开发有众多工具,又以Eclipse+Pydev最为常见.Eclipse平台对开发同学来讲,肯定是如雷贯耳,自不用废话.而PyDev是Eclipse平台 ...

  5. SQLite3 of python

    SQLite3 of python 一.SQLite3 数据库 SQLite3 可使用 sqlite3 模块与 Python 进行集成,一般 python 2.5 以上版本默认自带了sqlite3模块 ...

  6. Python实现海贼王的歌词组成词云图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:一粒米饭 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利, ...

  7. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  8. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  9. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

随机推荐

  1. Java面向对象笔记 • 【第2章 面向对象进阶】

    全部章节   >>>> 本章目录 2.1 成员变量 2.1.1 成员变量与局部变量的区别 2.1.2 成员变量的使用 2.1.3 实践练习 2.2 this关键字 2.2.1 ...

  2. SpringBoot中JPA使用动态SQL查询

    https://www.jianshu.com/p/f72d82e90948 可以重点关注方法二,把原生sql传入数据库去查询 好处是:更加灵活坏处是:拼接sql比较痛苦,也容易出问题,比如拼接的sq ...

  3. RSA非对称加密算法实现:Python

    RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA ...

  4. xorm 条件查询时区的问题

    问题描述:如果在查询的时候,直接传时间格式作为条件,时间会被驱动程序转为UTC格式,因此会有8个小时的误差. 解决方案1: 将查询时间转为字符串 db.where("time > ?& ...

  5. MyBatis 二级缓存实现详解及使用注意事项

    二级缓存介绍 在上文中提到的一级缓存中,其最大的共享范围就是一个SqlSession内部,如果多个SqlSession之间需要共享缓存,则需要使用到二级缓存.开启二级缓存后,会使用CachingExe ...

  6. centos6.5-nginx搭建

    一.安装nginx 1.安装相关组件 yum -y install pcre-devel zlib-devel 2.创建启动用户 useradd -M -s /sbin/nologin nginx t ...

  7. Ant <Delete> 如何只删掉文件夹下所有文件和文件夹

    用 fileset 来过滤要删掉的目录和文件 <project name="ant-project" default="example"> < ...

  8. POJ 3617 Best Cow Line (字典序最小问题 & 贪心)

    原题链接:http://poj.org/problem?id=3617 问题梗概:给定长度为 的字符串 , 要构造一个长度为 的字符串 .起初, 是一个空串,随后反复进行下列任意操作. 从 的头部删除 ...

  9. CVE-2020-0786(永恒之黑) GetShell

    描述 Microsoft服务器消息块3.1.1(SMBv3)协议处理某些请求的方式中存在一个远程执行代码漏洞,也称为" Windows SMBv3客户端/服务器远程执行代码漏洞". ...

  10. Android官方文档翻译 十八 4.2Pausing and Resuming an Activity

    Pausing and Resuming an Activity 暂停和恢复一个activity This lesson teaches you to 这节课教给你 Pause Your Activi ...