标签:style http color io os 使用 ar java for
输入输出 :
Linux下直接输入python,即进入Python编译界面
>>> print ‘hello,world‘ 输出,多行的时候使用 ‘‘‘ 代替 "
hello, world
>>> name = raw_input(‘please enter your name: ‘) 输入,raw_input得到的是字符串,要转换的话需要强制转换 :
int(raw_input())
please enter your name:
>>> name
Michael
Python基础:# print absolute value of an integer:
a = 100 对缩进有严格要求,对大小写敏感
if a >= 0:
print a
else:
print -a
字符串:
使用‘‘‘.....‘‘‘来表示多行内容
在Python中,变量a可以不指定类型,随意赋值,java就不行
整数除法
浮点数除法,得出的就是浮点数
取余也是%
用于字符串,
但是任意的数值都可以转换成字符串
分别用于整数、浮点数、十六位进制数
如果字符串里面有%,需要再加一个%来转义,即 %% = %
?查找子字串的索引值,没有则返回-1,还能指定位置 find(substr, start,
end)
从右往左查找:rfind()
切割字符串,实际字符串也是一个list,可以用list的方法
列表 List:
索引也是从0开始,倒数的从-1开始
.
p.append(‘dd‘) --> [‘asp‘, ‘php‘,
‘dd‘] 添加元素
p.insert(1, ‘jack‘) -->[‘asp‘, ‘jack‘, ‘php‘, ‘dd‘] 插入元素
p.pop(
) -->‘php‘
pop( ),删除最后一个元素,或pop(-1)
len(p) -->
2 长度
元组
Tuple:
tuple 也是一种list, 和 list 非常相似,但是 tuple
一旦初始化就不能修改
# tuple
不可变,代码更安全,但是要从一开始就确定元素,能用tuple的尽量用tuple代替list
#
这时候,要是list作为tuple的一个元素,list内容是可以改变的,因为tuple存放的不过不过是list的地址
>>> t = (2,
4) 注意,是括号
断和循环
:
注意冒号
:
#
elif 是 else if
的缩写
for...in...
循环遍历
range 生成 [0, 5)
的序列
Dict 字典 和 Set
集合:
key : value
,大括号
取出,也可以用get :
d.get(1),如果key不存在则返回None,key in dict
也可以判断key是否存在于dict
放入
删除key为1的键值对
# key
必须为不可变对象
借助list放入,加入list中有重复元素,set会自动过滤掉重复元素
添加
删除
函数:
isinstance是内置函数,类型检查
抛出参数错误异常
返回结果,无结果可以写 return
None
这里的move函数返回两个值,实际上是一个tuple,在语法上,返回一个tuple可以省略括号
默认参数
这里的方法可以这样调用:my_method(1, 2), my_method(1, 2, 3),
my_method(1, 2,
m=6)
#
注意,必选参数在前,默认参
数在后 ,而且默认参数必须指向不可变对象!!
可变参数
*numbers
是可变参数,参数传0个,1个,3个都行
numbers接收到的是一个tuple
#如果已经有一个tuple或者list需要传入,可以这么调用
calc(*args)
关键字参数:
**kw
是关键字参数,这些参数会自动组装成一个dict
#这里的kw可以不输,也可以输多个,要是传入一个dict,就可以这么传
**kw
输出的就是一个dict
高级特性:
切片
:开始的0的话,可以不写,取的是[0,3),不包括3
按顺序取后面两个
前四个数,每2个取一个
所有数,每2个取一个
所有数
# 字符串 和 tuple
也是list,因此也可以使用切片
迭代:
dict
默认迭代的是key
itervalues()方法可以迭代dict的value
iteritems()方法可以同时迭代dict的key和value
# 只要是可迭代对象,就可以用for...in,判断迭代对象 :
isinstance(‘abc‘, Iterable) (需要先导入 from Collections import
Iterable)
# 判断一个对象是否List、tuple、dict还可以用这种方法
type(x) ==
list,type取的是类型
使用enumerate 方法打印序号
i
列表生成式:
用range生成1到10的列表
列表里面写逻辑,生成的元素 x*x
要放到前面
得出AX、AY这样的 3*3
个组合
os.listdir可以列出文件和目录,如果目录有中文,用
os.listdir(u‘/中文‘)
输出L,但是里面的全部变成小写,非字符串没有 lower()
方法
# 拓展:把含有字符串和数字的列表改成小写,可以这么写 [s.lower()
if isinstance(s, str) else s for s in
L]
生成器:
>>> g = (x * x for x in
range(10))
生成器与列表的区别,前者是 (), 后者是
[]
>>>
g.next()
生成器保存的实际是 算法, 每次调用 next()
方法可以打印下一个值,直到最后一个抛错
# 一旦生成器建成后,基本不会使用 next() 方法,而是用迭代
for...in
>>> def
func():
生成器的另一种产生方法,带有yield的函数
... n =
20;
生成器执行next()方法时,每次在yield处返回,下一个next()时,继续从上次记录位置执行
... while(n >
0):
... yield
n
... n = n
-1
函数式编程:
高阶函数:
这里定义一个函数
这里map()作为高阶函数,接收函数作为参数的函数称为高阶函数
这里的f,写f是指函数对象本身,写f(1)时是调用函数,并期待返回1
这里的fn函数实现了累加
reduce()高阶函数,里面的fn()函数需要两个参数
排序算法:
sorted()也是一个高阶函数,默认按小到大排序
这里定义一个倒序的函数,要想字母排序倒序可以自己定义
cmp作为函数名传入就可以实现倒序了
标签:style http color io os 使用 ar java for
原文地址:http://www.cnblogs.com/fatcat132006/p/4017755.html