您的位置:首页 > 编程语言 > Python开发

python条件、循环和其他语法

2015-12-09 00:02 447 查看
print:

print输出多个变量的时候可以用','隔开,print后面不用跟':'否则会报错。

print 10,20,'杨焕滨'
import的用法:

[align=left]'''导入模块'''[/align]
import
re;
'''导入模块的某个
py'''
from
re
import
sub;
[align=left]'''导入某个模块的所有方法'''[/align]
from
re
import
*;
[align=left]'''导入模块使用别名,后面的代码可以使用rest代替re'''[/align]
import
re
as rest;
if语法:

if
__name__ ==
'__main__':
num=input(
'Enter a
num : ')
if
num>0
:
print
'This is a positive'
elif
num<0:
print
'This is a negative'
[align=left]else:[/align]
print
'This is a zero'
while循环:

if
__name__ ==
'__main__':
name
=''
while
not
name
:
name
=raw_input('input your
name:')
print
'hello %s!'
%
name
while....else:while循环结束执行else。
for 循环:

for number in [1,2,3,4,5]:

print number

当 in 后面是dict类型的时候,for ... in ...循环不会取出每一项,只会取出字典的key

print [x for x in {'a':'b','c':'d'}]

输出:['a', 'c']
列表推导式:

if
__name__ ==
'__main__':
y=[x*x
for
x
in range(10)]
print
y
print
[x*x
for
x
in range(10)
if
x%3==0]
print
[(x,y)
for
x
in range(2)
for
y
in range(2)]

输出为:

[align=left][0, 1, 4, 9, 16, 25, 36, 49, 64, 81][/align]
[align=left][0, 9, 36, 81][/align]
[(0, 0), (0, 1), (1, 0), (1, 1)]

del关键字:

删除变量,del x
exec动态执行字符串Python语句、eval(str)是exec的内建函数:

exec 'x=3*5+1' 等价于 x=eval('3*5+1') 最后都能得到x=16
def关键字:

定义函数,def add(a,b): return a+b
[:]有类似于copy.copy的作用,可以复制一个列表或元组给另一个变量,两个变量是两个副本,不指向同一个对象。

但是[:]仅仅限于列表或元组,copy.copy可用范围更广。

例子:namecopy=name[:]
global关键字:

global关键字用于定义全局变量,在函数内部使用的变量使用global声明后,global变量在函数内部的改变会带到函数外。

def
global_test():
global
x
x
=x+
1
[align=left][/align]
if
__name__ ==
'__main__':
x
=1
[align=left]global_test()[/align]
print
x
输出结果:
2
r/R开头的字符串:

在Python中以r或R开头的字符串表示原始字符串(非转义),使用以下例子进行说明:

[align=left]stri=r'\t123'[/align]
[align=left]stri2='\t123'[/align]
[align=left]print(stri)[/align]
[align=left]print(stri2)[/align]

输出的结果如下:

[align=left]\t123[/align]
[align=left]123[/align]

在Python的re模块,也就是正则表达式中大量的经常使用r开头的字符串作为匹配模式,这是因为在正则表达式中‘\’是转义字符,字符串中‘\’也是转义字符,为了避免Python使用正则表达式的时候和Java一样使用正则表达式的转义字符需要‘\\’,所以在字符串的开头用r将移除字符串中'\'的转义功能。

判断条件(真/假)情况总结:

代码块:

block=
?
if
block
:
print(
"True")
else:print
("False")

?用以下符号代替,最后的输出结果为 False,即以下情况在Python中都代表了 假:

[]
{}
None
''(单引号)
()
(0)
0
""(双引号)
''''''(三引号)

也就是在表示空的变量情况下,使用的判断结果都为False。其余情况下判断为True。

pass关键字:空语句。
break、continue:同其他语言用法
快速获得列表的值:
>>> array
=
[
1
,

2
,
5
,
3
,

6
,
8
,
4
]

>>> array[
1
:]
#列出1以后的

[
2
,
5
,
3
,
6
,
8
,
4
]

>>> array[:
-
1
]
#列出-1之前的

[
1
,
2
,
5
,
3
,
6
,
8
]

>>> array[::
2
]

[
1
,
5
,
6
,
4
]

>>> array[
2
::]

[
5
,
3
,
6
,
8
,
4
]

>>> array[::
3
]

[
1
,
3
,
4
]

>>> array[::
-
1
]

[
4
,
8
,
6
,
3
,
5
,
2
,
1
]

>>> array[::
-
2
]

[
4
,
6
,
5
,
1
]

yield关键字:
任何包含yeild语句的函数称为生成器。除了名字不同意外,它的行为和普通的函数也有很大的区别。这就在于它不像return那样返回,而是每次产生多个值。每产生一个值(使用yield语句),函数就会被冻结:即函数停在那点等待被激活。函数被激活后就从停止的那点开始执行。
博客详细说明:/article/8889439.html
Python中类函数中的参数self代表实例本身。
b开头的字符串会产生一个bytes类型的列表
rasie 抛出异常
try:...except Exception:...[except: ....[else:...[finally...]]]捕捉异常语法。
if __name__ ==
'__main__':
[align=left]try :[/align]
raise Exception(
'这是异常!!!')
except
Exception , e:
[align=left]print e[/align]
当捕捉到异常的时候不执行else内的代码,否则执行else内的代码。finally不管是否捕捉到异常都会执行。

如果需要自定义异常类,一定要继承Exception才能使用raise抛出。

例如:

class
myException(Exception):
[align=left]pass[/align]
[align=left][/align]
if
__name__ ==
'__main__':
try
:
raise
myException
except
myException:
print
'这是自定义异常!'
[align=left]else:[/align]
print
'没有捕捉到!'
Python特殊语法:filter、map、reduce、lambda[转]

lambda表达式返回一个函数对象
例子:
func = lambda x,y:x+y
func相当于下面这个函数
def func(x,y):
return x+y

注意def是语句而lambda是表达式
下面这种情况下就只能用lambda而不能用def
[(lambda x:x*x)(x) for x in range(1,11)]

map,reduce,filter中的function都可以用lambda表达式来生成!

map(function,sequence)
把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。
如果function有两个参数,即map(function,sequence1,sequence2)。

例子:
求1*1,2*2,3*3,4*4
map(lambda x:x*x,range(1,5))
返回值是[1,4,9,16]

reduce(function,sequence)
function接收的参数个数只能为2
先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给
function,然后只返回一个结果。

例子:
求1到10的累加
reduce(lambda x,y:x+y,range(1,11))
返回值是55。

filter(function,sequence)
function的返回值只能是True或False
把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里 面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。

例子:
找出1到10之间的奇数
filter(lambda x:x%2!=0,range(1,11))
返回值
[1,3,5,7,9]

如果sequence是一个string
filter(lambda x:len(x)!=0,'hello')返回'hello'
filter(lambda x:len(x)==0,'hello')返回''
','逗号的作用

1.print的时候使用逗号','可以不换行:

print
11,
print22
输出:11 22
2.将其他类型转化为tupple类型:

>>>‘a’,

('a',)

表示一个长度为0的元组的时候,一定要在第一个元素后面加',',否则会认为这个元素不是元组类型,不加逗号的情况:

>>>('a')

'a'
return x if condition else y:

如果condition成立return x 否则 return y
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: