python培训拾遗
20140421
1. 三大利器:
dir----列出所有内部方法
a=1
dir(a) 可以列出所有内部方法,就是带两个下划线的;带一个下划线的是普通方法
help---查看帮助
help(a.bit_length)
type---查看数据类型
type(a)
2. str类型的神奇用法
源 | 结果 | 解释说明 |
"hello"+"world" | "helloworld" | 连接 |
’hello‘*3 | "hellohellohello" | 重复 |
“hello”[0] | "h" | 第一个位置 |
"hello"[-1] | "o" | 最后一个位置 |
"hello"[::-1] | "olleh" | 反转 |
"hello"[1:4] | "ell" | 取片段,右边界不包含 |
len("hello") | 5 | 求长度 |
"hello"<"jello" | 1 | 字符串比较 |
"e" in "hello" | 1 | |
"escapes:\n etc,\033 etc, \if etc" | ||
'single quotes' '''triple quotes''' r''raw strings'' | r''表示不会转义,正则表达式中多用 | |
"The %s is %d" %('abc',12) |
3. 容器
- list ,包括:元素可变---[],元素异构---a=[33,"hiboy",["i', 'am"]]
常用list操作方法
操作 | 结果 | 解释说明 |
a = range(5) | 5 | #[0,1,2,3,4] |
a.pop() | None | #[0,1,2,3,4] |
a.reverse() | None | #[4,3,2,1,0] |
a.sort() | None | #[0,1,2,3,4] |
a.insert(0,42) | None | #[42,0,1,2,3,4]在第一个位置插入42 |
a.append(['another','list']) | None | #[0,1,2,3,4,['another','list']] |
a.extend(['another','list']) | None | #[0,1,2,3,4,'another','list'] |
a=[0]*3 | #[0,0,0] |
- tuple,元组 包括:元素不可变;元素异构:记住c(0,)逗号必须有,不然就认成别的了
- dict---key不可变,value可变 a={key:value};元素异构;
描述 | 解释说明 |
a={} | 空字典 |
b={'x':3,'y':4} | |
c={' uid':105,'login':' beazley',' name':' David Beazley'} | |
u=c[' uid'] | 获取一个元素值 |
c[' shell']="/bin/sh" | 赋值 |
c['login']=23 | |
b.get('Perl','unknown') | 结果是:unknown |
b.keys() | 结果是:[x,y] |
b.values() | [3,4] |
b.items() | [('y',4),('x',3)] |
d=b.copy():del b['x'] |
b:{'y':4},d:{'x':3,'y':4} |
b[2]=3:b.update(d) |
b:{'y':4,2:3},d:{'x':3,'y':4,'2':3} |
dict常用于:遍历
items() keys() values()
iteritems() iterkeys() itervalues() --- 元素超过1w时建议使用,效率高;除此之外下面3个和上面的功能没有区别
4. 控制
- if 不多说了
- for有个神奇的地方:
mylist = "for statement"
for word in mylist:
print word
else:#最终执行
print "End list"
- while不多说
break --终止当前循环
continue--终止本次循环
pass:什么事都不做
- 由于python不支持switch,故可以使用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) #1 4
sw['f2'](5) #2 5
sw['default'](8) #default 4
5. 变量,无须声明,初始化等,id(变量名)能够识别是哪个变量的引用 a=1;b=1
6. 灵活无比的函数
deffuncname(arg1,arg2=0,*arg3,**arg4): #分别声明普通参数,元组参数,dict字典参数。一个函数中只可以有一个元组和一个字典
"""doc文档描述放这里"""
statments
return xx
例如:def gcd(a,b):
"this is self definition"
while a!=0:
a,b=b%a,a
return b
>>>gcd.__doc__
"this is self definition"
>>>gcd(12,20)
4
又如:
def h(*t):print t
>>>h(1)
(1,)
>>>h(1,2,3,5,6,7)
(1,2,3,5,6,7)
def k(**d):print d
>>>k(m=1,n=2)
{'m':1,'n':2}
- 函数作用域规则:Local(局部) -> Global(全局) ->Built-in(内置)->NameError异常
- Python没有函数重载,因为函数是没类型的
- python函数可以返回多个值么?可以的 tuple
- 下面函数有什么问题?
- def func(in,out):print in.out out=2;有问题,关键字不可以用,会覆盖原有意义
核心库:
os sys string getopt StringIO struct pickle...
正则库
re module
网络库
socket httplib htmllib ftplib smtplib lxml...
在线参考
标准库:http://docs.python.org/library/index.html
ppt中的作业,实现如下:遇到的问题是,&&要用and代替;range(m,n)是指从m开始到n-1;raw_input()返回的类型默认是string的,用在这里还需要用isdigit()转换一下,因此改用input();print(),打印后不换行,但有一个空格,还没找到好的去除方法
import sys
n = input("Pls input your number:")
for i in range(1,n+1):
for j in range(1,i+1):
# if (j%2==0) and (i%2==0):
#sys.stdout.write("*")
# print "*",
if (j==(i/2+1)) and (i%2==1):
print "!",
else:
print "*",
print "\n"
下面程序的输出是a,c. for each in alist:each相当于有一个指针。each指向第一个元素的时候,打印a;同时remove掉a;这时alist长度变化了,原先第一个元素变成了b;each指针向下走,变成了a;a被打印出来了。因此,这个程序的教训是:不要随意改变列表长度。
alist = ['a','b','c','d']
for each in alist:
print each
alist.remove(each)
模块查找路径依次是:sys.path -- PYTHONPATH -- site-packages
接下来的程序是很常见的用于自测自定义程序是否work的:
#!/usr/bin/python
if __name__=='__main__':
print 'This program is being run by itself'
else:
print 'I am bneing imported from another module'
包:包是一个目录树,每个目录下都有一个__init__.py文件
包工具:目前主要是pip;安装包:pip install/uninstall simplejson
类定义中的:
类方法classmethod:整个类只有这么一个方法,
statcitmethod
例子:实现一个堆栈
class Stack(object):
"A well-known data structure..."
def __init__(self): #构造函数
self.items = []
def push(self,x):
self.items.append(x)
def pop(self):
x=self.items[-1]
del self.items[-1]
return x
def empty(self):
return len(self.items)==0
x=Stack()
x.empty() # True
x.push(1) # [1]
x.empty() # False
x.push("hello") # [1,"hello"]
x.pop() #hello
x.items #[1]
类 - 继承
class SchoolMember(object):
'''Rmpresents any school member.'''
def __init__(self,name,age):
self.name = name
self.age - age
print '(Initialized SchoolMember:%s)' % self.name
def tell(self):
'''Tell my details.'''
print 'Name:"%s" Age:"%s"' %(self.name,self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
def __init__(self,name,age,salary):
SchoolMember.__init__(self,name,age)
self.salary = salary
print '(Initialized Teacher:%s)' % self.name
def tell(self):
SchoolMember.tell(self)
print 'Salary:"%d"' % self.salary
class Student(SchoolMember):
def __init__(self,name,age,score):
SchoolMember.__init__(self,name,age)
self.score = score
t=Teacher('Mrs.Shrividya',40,30000) #实例化
s = Student('Swaroop',22,75)
t.tell()
s.tell()
转载于:https://www.cnblogs.com/ianthe/p/3679578.html
python培训拾遗相关推荐
- Python培训:Python有哪些函数?你了解几种?
本期小编要为大家带来的Python教程就是关于Python函数这方面的,我们都知道Python函数,一般是指组织好的.可重复使用的.用来实现单一或相关联功能的代码段,Python函数包含系统中自带的一 ...
- Python培训教程:Python有哪些比较重要的内置函数?
学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...
- Python培训教程分享:10款超好用的Python开发工具
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python ...
- Python培训教程分享:Python异常机制
在学习Python技术的时候,我们经常会遇到一些异常,例如导致程序在运行过程中出现的中断或退出,我们都称之为异常,大多数的异常都不会被程序处理,而是以错误信息的形式展现出来.本期Python培训教 ...
- 参加完Python培训后有哪些就业方向
很多学习Python技术的同学都是为了后面能够找到一个好的工作,对于大家来说了解了Python的就业方向,后面就可以根据自己的能力来选择对应的工作岗位了,那么下面小编就为大家详细的介绍一下参加完Pyt ...
- Python培训教程分享:有哪些值得使用的爬虫开源项目?
相信很多同学在学习Python技术的时候,都有学习到Python爬虫技术,爬虫技术在各大互联网公司都是非常常见的,可以帮助我们获取各种网站的信息,比如微博.B站.知乎等,本篇Python培训教程分享为 ...
- Python培训教程分享:visual studio编写python怎么样?
本期小编要为大家介绍的Python培训教程就是关于"visual studio编写python怎么样?"的问题,但答案当然是可以的,据了解,vs2017.vs2019都集成了pyt ...
- Python培训分享:Python新版本中的6个新特性
Python在几年做了一个全面的升级,此次Python升级中有6个新特性,本期小编为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的,来看看下面的详细介绍. Python培 ...
- Python培训教程分享:Python中选择结构是什么
越来越多的人开始报名学习Python技术,那么学习Python技术不是一两天就能学会的,本期小编为大家推荐的Python培训教程主要讲的是"Python中选择结构是什么",下面来看 ...
- Python培训教程:pycharm常用的快捷键合集
本期Python培训教程:pycharm常用的快捷键合集,希望能在后面的学习和工作中给大家带来一些帮助,首先我们来了解一下什么是PyCharm?PyCharm是一种Python IDE,它不仅具备了一 ...
最新文章
- 利用最小二乘法求解仿射变换参数
- docker logstash_用于监视Kubernetes和Docker的六大开源工具
- hackthon提高
- 设计模式复习-状态模式
- python 升级setuptools_linux 安装/升级 python3+setuptools+pip
- javascript对时间的处理
- 编程填空:学生信息处理程序_项目学生:业务层
- oracle查表占的物理空间,查询Oracle表实际物理使用大小
- c语言中清屏的作用是什么,清屏函数的使用
- 产品配件类目税目分类_汽车用品税收分类编码
- 证件照处理工具,软件虽小,但是功能强大!(证件照工具,都用得上)
- 播布客 视频教学文件下载方法
- 快速翻译PDF文档的免费方法
- 《秘密全在小动作上》读书笔记
- 人工智能基础——什么是人工智能
- [译]无迹卡尔曼滤波教程
- 猜数字(Bulls and Cows)游戏
- 第三方微信授权登录的iOS代码分析
- apache httpclient 连接 IIB,发送XML请求
- php 连接sqlserver数据库(一)
热门文章
- 参考文献中英文人名_参考文献中英文人名的缩写规则
- 2021-03-14
- html之css关于引入样式的优先级
- pve 虚拟环境 vi/vim不能右键粘贴设置方法
- HTML DOM Image 对象
- java.net.URLEncoder 、URLDecoder 编码与解码
- sql插入时返回插入主键id(id位自动增长)
- 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_2.RabbitMQ研究-RabbitMQ介绍...
- 阶段3 2.Spring_10.Spring中事务控制_3 作业-基于注解的AOP实现事务控制及问题分析_下...
- 向java全台推送数据等