while循环
在遇到break时,循环结束。如果其中有if语句的话,循环之后紧挨着的else可以和这个呼应
代码语言:javascript复制from random import randint
# Generates a number from 1 through 10 inclusive
random_number = randint(1, 10)
guesses_left = 3
# Start your game!
while guesses_left > 0:
guess = int(raw_input("Your guess: "))
if guess == random_number:
print "You win!"
break
guesses_left -= 1
else:
print "You lose."
压缩列表
使用zip函数,这个函数可以将多个列表组织在一起,并进行压缩,如果列表中最短的那个列表长度为MIN_LEN,那么将只取所有列表中前MIN_LEN个元素
代码语言:javascript复制list_a = [3, 9, 17, 15, 19]
list_b = [2, 4, 8, 10, 30, 40, 50, 60, 70, 80, 90]
for a, b in zip(list_a, list_b):
# Add your code here!
print a, b
列表转换成枚举
使用enumerate函数
代码语言:javascript复制choices = ['pizza', 'pasta', 'salad', 'nachos']
for index, item in enumerate(choices):
print index 1, item
字典相关函数
.tems()可以将字典转换成列表,列表中的元素是(key, value)的元组
.keys()返回字典的key列表
.values()返回字典的value列表
代码语言:javascript复制my_dict = {
'School' : 'Southwest Jiaotong University',
'Colledge' : 'Information Science and Technolodge Colledge',
'Major' : 'Software Engineering'
}
for key,value in my_dict.items():
print key, value
print my_dict.items()
构建列表
python可以在构建列表的时候使用:for/in/if语法。省略if表示使用for中所有元素
下面将构建0到50之间的偶数组成的列表
代码语言:javascript复制evens_to_50 = [i for i in range(51) if i % 2 == 0]
print evens_to_50
Lambda
Lambda是匿名函数,使用起来,可以直接将其当做函数
代码语言:javascript复制lambda x: x%3 ==0
x是函数的参数,x % 3 == 0 是返回值,该语句和下面的意思一样:
代码语言:javascript复制def by_three(x):
return x % 3 == 0
filter()可以将lambda和列表作为输入,前面的函数返回True或者False,返回True表示接受,该值不会被过滤掉
代码语言:javascript复制my_list = range(16)
print filter(lambda x: x % 3 == 0, my_list)
输出结果是
[0, 3, 6, 9, 12, 15]
代码语言:javascript复制garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX"
message = filter(lambda x: x != 'X', garbled)
print message
输出结果是:
I am another secret message!
覆盖__repr()__
__repr__告诉python如何显示自身,例如使用print时
代码语言:javascript复制class Point3D(object):
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __repr__(self):
return '(%d, %d, %d)' % (self.x, self.y, self.z)
my_point = Point3D(1, 2, 3)
print my_point
输出是:
(1, 2, 3)
文件操作
open('file_name', 'mode'),mode可能为w或者r,读模式的时候,一定要确保文件已经存在,否则会报错。
文件操作完毕的时候一定要关闭文件。
可以通过文件的属性closed判断文件是否关闭,如果read_file没有关闭,read_file.closed的返回值是False,否则,其返回值是True
代码语言:javascript复制# Open the file for reading
read_file = open("text.txt", "r")
# Use a second file handler to open the file for writing
write_file = open("text.txt", "w")
# Write to the file
write_file.write("Not closing files is VERY BAD.")
write_file.close()
# Try to read from the file
print read_file.read()
read_file.close()
自动关闭文件
with as模式,在使用完对象后,会调用对象的__exit()__方法,而文件的这个方法会调用close()
代码语言:javascript复制with open("text.txt", "w") as textfile:
textfile.write("Success!")
参考
http://www.codecademy.com/courses/python-beginner-en-cxMGf