Python Learning——第三天

来源:互联网 发布:好看的淘宝店铺 编辑:程序博客网 时间:2024/06/06 00:21

学生管理范例:

<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>


list复习:

——[ ]访问下标

——.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 randintboard = []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_rowprint 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 = 0while count < 3:    num = random.randint(1, 6)    print num    if num == 5:        print "Sorry, you lose!"        break    count += 1else:    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)

0 0
原创粉丝点击