Python代码

2022-09-29 15:02:15 浏览数 (1)

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

0 人点赞