alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【C012】Python - 基础教程学习(三)

 第五章 条件、循环和其他语句

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


























 

posted on   McDelfino  阅读(327)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示