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

Python - 基础教程学习(第五章 & 第六章)

2011-11-12 16:51 856 查看
第五章 条件、循环和其他语句


print和import的更多信息

>>> print 'Age:',42
Age: 42
>>> print 'Age;';42
Age;
42
>>> name = 'Gumby'
>>> salutation = 'Mr'
>>> greeting = 'Hello,'
>>> print greeting,salutation,name
Hello, Mr Gumby


>>> import math as foobar
>>> foobar.sqrt(4)
2.0
>>> from math import sqrt as foobar
>>> foobar(4)
2.0
赋值魔法

>>> x,y,z = 1,2,3
>>> print x,y,z
1 2 3
>>> x,y = y,x
>>> print x,y,z
2 1 3
>>> values = 1,2,3
>>> values
(1, 2, 3)
>>> x,y,z = values
>>> x
1
>>> y
2
>>>
>>> scoundrel = {'name':'Robin','girlfriend':'Marion'}
>>> key,value = scoundrel.popitem()
>>> key
'girlfriend'
>>> value
'Marion'
链式赋值

>>> x = y = 1
>>> x
1
>>> y
1
>>>
增量赋值

>>> x = 2
>>> x += 1
>>> x
3
>>> x *= 4
>>> x
12
>>> fnord = 'foo'
>>> fnord += 'bar'
>>> fnord
'foobar'
>>> fnord *=2
>>> fnord
'foobarfoobar'
>>>
语句块:缩排的乐趣

条件和条件语句

>>> True
True
>>> False
False
>>> True == 1
True
>>> False == 0
True
>>> True + False + 43
44
>>>
>>> bool('I think, therefore I am')
True
>>> bool(42)
True
>>> bool('')
False
>>> bool("")
False
>>> bool(0)
False
>>> bool([])
False
>>> bool({})
False
>>> bool(False)
False
>>> bool(None)
False
>>>
条件执行和if语句(if、elif、else)

name = raw_input('What is your name?')
if name.endswith('Gumby'): print 'Hello, Mr.Gumby'


num = input('Enter a number:')
if num > 0:
print 'The number is positive'
elif num < 0:
print 'The number is negative'
else:
print 'The number is zero'
嵌套代码块

name = raw_input('What is your name?')
if name.endswith('Gumby'):
if name.startswith('Mr'):
print 'Hello, Mr.Gumby'
elif name.startswith('Mrs'):
print 'Hello, Mrs.Gumby'
else:
print 'Hello, Gumby'
else:
print 'Hello, stranger'
更复杂的条件

比较运算符



>>> 'foo' == "foo"
True
>>> 'foo' == 'bar'
False
>>> x = y = [1,2,3]
>>> z = [1,2,3]
>>> x == y
True
>>> x is y
True
>>> x is z
False
>>> x = z
>>> x ==z
True
>>>
>>> x = [1,2,3]
>>> y = [2,4]
>>> x is not y
True
>>> del x[2]
>>> x
[1, 2]
>>> y[1] = 1
>>> y.reverse()
>>> y
[1, 2]
>>> x == y
True
>>> x is y
False
name = raw_input('What is your name?')
if 's' in name:
print 'Your name contains the letter "s".'
else:
print 'Your name doesn\'t contain the letter "s".'
>>> "alpha" < "beta"
True

>>> 'FnOrD'.lower() == 'Fnord'.lower()
True
>>> [1,2] < [2,1]
True
>>> [2,[1,4]] < [2,[1,5]]
True
number = input('Enter a number between 1 and 10:')
if number <= 10 and number >= 1:
print 'Great'
else:
print 'Wrong'
断言

循环

while循环

x = 1
while x <= 1000:
print x
x += 1
name = ''
while not name:
name = raw_input('Please enter your name?')
print 'Hello, %s!' % name
for循环

words = ['this','is','an','ex','parrot']
for word in words:
print word
numbers = [0,1,2,3,4,5,6,7,8,9]
for number in numbers:
print number
>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
d = {'x':1,'y':2,'z':3}
for key in d:
print key, 'corresponds to', d[key]
y corresponds to 2
x corresponds to 1
z corresponds to 3
一些迭代工具

names = ['anne','beth','george','damon']
ages = [12,45,32,102]
for i in range(len(names)):
print names[i],'is',ages[i],'year old'
翻转和排序迭代

>>> sorted([4,3,6,8,3])
[3, 3, 4, 6, 8]
>>> sorted('Hello, world!')
[' ', '!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
跳出循环

break

from math import sqrt
for n in range(99,0,-1):
root = sqrt(n)
if root == int(root):
print n
break
>>> range(0,10,2)
[0, 2, 4, 6, 8]
>>>
continue

while True/break

word = 'dummy'
while word:
word = raw_input('Please enter a word:')
print 'The word was ' + word
word = raw_input('Please enter a word:')
while word:
print 'The word was ' + word
word = raw_input('Please enter a word:')
while True:
word = raw_input('Please enter a word:')
if not word:break
print 'The word was ' + word
from math import sqrt
for n in range(92,99,1):
root = sqrt(n)
if root == int(root):
print n
break
else:
print "Didn't find it!",n
Didn't find it! 92
Didn't find it! 93
Didn't find it! 94
Didn't find it! 95
Didn't find it! 96
Didn't find it! 97
Didn't find it! 98
from math import sqrt
for n in range(99,89,-1):
root = sqrt(n)
if root == int(root):
print n
break
else:
print "Didn't find it!",n
Didn't find it! 99
Didn't find it! 98
Didn't find it! 97
Didn't find it! 96
Didn't find it! 95
Didn't find it! 94
Didn't find it! 93
Didn't find it! 92
Didn't find it! 91
Didn't find it! 90
range函数,就是不包括后面的边界~

列表推导式——轻量级循环

>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [x*x for x in range(10) if x % 3 == 0]
[0, 9, 36, 81]
>>> [(x,y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
result = []
for x in range(3):
for y in range(3):
result.append((x,y))
print result
>>> girls = ['alice','bernice','clarice']
>>> boys = ['chris','arnold','bob']
>>> [b+'+'+g for b in boys for g in girls if b[0] == g[0]]
['chris+clarice', 'arnold+alice', 'bob+bernice']
比较(Python根据缩进来判断语句关系)

result = []
for x in range(3):
for y in range(3):
result.append((x,y))
print result
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
result = []
for x in range(3):
for y in range(3):
result.append((x,y))
print result
[(0, 0)]
[(0, 0), (0, 1)]
[(0, 0), (0, 1), (0, 2)]
[(0, 0), (0, 1), (0, 2), (1, 0)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]



第六章 抽象


fibs = [0,1]
num = input('How many Fibonacci numbers do you want?')
for i in range(num-2):
fibs.append(fibs[-2] + fibs[-1])
print fibs
How many Fibonacci numbers do you want?10
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
函数

def hello(name):
return 'Hello,'+name+'!'
>>> print hello('world')
Hello,world!
>>> print hello('Gumby')
Hello,Gumby!
def fibs(num):
result = [0,1]
for i in range(num-2):
result.append(result[-2]+result[-1])
return result
>>> fibs(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> fibs(10)[2]
1
记录函数

def square(x):
'Calculates the square of the number x.'
return x*x
def square(x):
'Calculates the square of the number x.'
return x*x
并非真正函数的函数

def test():
print 'This is printed'
return
print 'This is not'
>>> x = test()
This is printed
>>> x
>>> print x
None
>>>
参数魔法

>>> def change(n):
n = 'Alex'

>>> name = 'mr'
>>> change(name)
>>> name
'mr'
>>> def change(n):
n[0] = 'Mr. Gumby'

>>> names = ['Mrs. Entity','Mrs. Thing']
>>> change(names)
>>> names
['Mr. Gumby', 'Mrs. Thing']
>>>
>>> names = ['Mrs. Entity','Mrs. Thing']
>>> n = names
>>> n[0] = 'Mr. Gumby'
>>> names
['Mr. Gumby', 'Mrs. Thing']
>>>
>>> names = ['Mrs. Entity','Mrs. Thing']
>>> n = names
>>> n is names
True
>>> n == names
True
>>> n = names[:]
>>> n is names
False
>>> n == names
True
指向同一对象的时候,is就是True,否则就是False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: