Python Learning——第三天

学生管理范例:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值