学生管理范例:
<span style="font-size:18px;">lloyd = {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}#字典的使用
# Add your function below!</span>
<span style="font-size:18px;">"""返回list的平均值"""
def average(numbers):
total = sum(numbers)
total = float(total)
return total/len(numbers)
</span>
<span style="font-size:18px;"> def get_average (student):</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span> homework =average(student["homework"]) </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>quizzes = average(student["quizzes"]) </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>tests = average(student["tests"]) </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>return homework*0.1+quizzes*0.3+tests*0.6 </span>
<span style="font-size:18px;">"""返回学生成绩评级"""
def get_letter_grade(score):
if score>=90:
return "A"
elif score>=80:
return "B"
elif score>=70:
return "C"
elif score>=60:
return "D"
else:
return "F"
print get_letter_grade(get_average(lloyd))
def get_class_average (students):
results=[]
for student in students:
results.append(get_average(student))
return average(results)
print get_class_average ([lloyd, alice, tyler])
print get_letter_grade (get_class_average ([lloyd, alice, tyler]))</span>
——[ ]访问下标
——.append添加元素
——.pop(index)移除指定下标元素
——.remove(item)移除指定值元素,如果找到的话
—— del(n[1])与上类似,移除指定下标,但不返回其值
——lista+listb直接连接两个list
——list乘以常数返回一个list,如["n"]*5= =['n','n','n','n','n']
——print "---".join(list)在输出时用---取代list中的,
<span style="font-size:18px;">n = [3, 5, 7]
for i in range(0, len(n)):#对list的每个成员操作
n[i] = n[i] * 2</span>
range函数(三版本):
——range(stop)
——range(start,stop) #区间类似于[start,stop)
——range(start,stop,step)
randint(1,6)在1到6之间返回一个随机数,包括6
猜位置范例:
<span style="font-size:18px;">from random import randint
board = []
for x in range(5):
board.append(["O"] * 5)
def print_board(board):
for row in board:
print " ".join(row)
print "Let's play Battleship!"
print_board(board)
def random_row(board):
return randint(0, len(board) - 1)
def random_col(board):
return randint(0, len(board[0]) - 1)
ship_row = random_row(board)
ship_col = random_col(board)
print ship_row
print ship_col
# Everything from here on should go in your for loop!
# Be sure to indent four spaces!
for turn in range(4):
print "Turn", turn + 1
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))
if guess_row == ship_row and guess_col == ship_col:
print "Congratulations! You sunk my battleship!"
break
else:
if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
print "Oops, that's not even in the ocean."
elif(board[guess_row][guess_col] == "X"):
print "You guessed that one already."
else:
print "You missed my battleship!"
board[guess_row][guess_col] = "X"
# Print (turn + 1) here!
print_board(board)
if turn == 3:
print "Game Over"</span>
下面这个例子else的位置很独特:
<span style="font-size:18px;">count = 0
while count < 3:
num = random.randint(1, 6)
print num
if num == 5:
print "Sorry, you lose!"
break
count += 1
else:
print "You win!"</span>
字典:
——.items();.keys();.values()#顾名思义
新的list生成方式:
——evens_to_50 = [i for i in range(51) if i % 2 == 0]
——list[start:end:step]
——list[::-1]#逆转一个list
——squares =[x**2 for x in range(1,11)]
——threes_and_fives=[x for x in range(1,16) if x%3==0 or x%5==0]
功能性编程:
filter(lambda x: x % 3 == 0, my_list)