In [ ]:
#1.写函数,返回一个list中所有数字的和
#2.写函数,返回一个list中的最小值
#3.写函数,返回某个元素/对象在一个list中的位置,如果不在,则返回-1.
#4.写函数,可求两个向量的夹角余弦值,向量可放在list中。主程序调用该函数。
#5.挑战性习题:python语言老师为了激励学生学python,自费买了100个完全相同的Macbook Pro,分给三个班级,每个班级至少分5个,用穷举法计算共有多少种分法?

In [8]:
#练习1.写函数,返回一个list中所有数字的和
def sum_of_list(n): 
    numbers=[] 
    Sum = 0 
    for i in range(n): 
        number = int(input('请输入一个数字,回车结束。'))
        numbers.append(number)
        Sum+=numbers[i]
    print('以上',n,'个数字的和为:')
    return Sum

sum_of_list(5)


请输入一个数字,回车结束。2
请输入一个数字,回车结束。3
请输入一个数字,回车结束。4
请输入一个数字,回车结束。5
请输入一个数字,回车结束。6
以上 5 个数字的和为:
Out[8]:
20

In [11]:
#练习2.写函数,返回一个list中的最小值
def min_of_list(n): 
    numbers = []  
    for i in range(n): 
        number = int(input('请输入一个数字,回车结束。')) 
        numbers.append(number) 
    Min = numbers[0] 
    for i in range(n):      
        if(numbers[i]<Min):
            Min=numbers[i] 
    print('以上',n,'个数字中最小的为:') 
    return Min 

min_of_list(5)


请输入一个数字,回车结束。9
请输入一个数字,回车结束。2
请输入一个数字,回车结束。1
请输入一个数字,回车结束。8
请输入一个数字,回车结束。5
以上 5 个数字中最小的为:
Out[11]:
1

In [12]:
#练习3.写函数,返回某个元素/对象在一个list中的位置,如果不在,则返回-1.\n",
def position(n):
    lists = ['you',1,'are','the',3]
    j=0
    print(n,'在列表中的位置是:')
    for i in range(len(lists)):
        if(n==lists[i]): 
            j=1 
            return i+1 
    if(j==0): 
            return -1 
   
position('the')


the 在列表中的位置是:
Out[12]:
4

In [16]:
#练习4.写函数,可求两个向量的夹角余弦值,向量可放在list中。主程序调用该函数。
import math
def cos_of_vectors():
    list1 = []
    list2 = []
    i=0
    j=0
    for i in range(3): #第一个向量的x,y,z
        vector1 = int(input('请输入向量1的坐标,回车结束。(分别是x,y,z)'))
        list1.append(vector1)
    for j in range(3): #第二个向量的x,y,z
        vector2 = int(input('请输入向量2的坐标,回车结束。(分别是x,y,z)'))
        list2.append(vector2)
    dianji=list1[0]*list2[0]+list1[1]*list2[1]+list1[2]*list2[2]
    mo = (math.sqrt(list1[0]**2+list1[1]**2+list1[2]**2))*(math.sqrt(list2[0]**2+list2[1]**2+list2[2]**2))
    print ("两个向量夹角的余弦值为:")
    return dianji/mo

cos_of_vectors()


请输入向量1的坐标,回车结束。(分别是x,y,z)1
请输入向量1的坐标,回车结束。(分别是x,y,z)0
请输入向量1的坐标,回车结束。(分别是x,y,z)0
请输入向量2的坐标,回车结束。(分别是x,y,z)1
请输入向量2的坐标,回车结束。(分别是x,y,z)1
请输入向量2的坐标,回车结束。(分别是x,y,z)0
两个向量夹角的余弦值为:
Out[16]:
0.7071067811865475

In [30]:
#练习5.挑战性习题:python语言老师为了激励学生学python,自费买了100个完全相同的Macbook Pro,分给三个班级,每个班级至少分5个,用穷举法计算共有多少种分法?
num=0
for i in range(100):
    for j in range(100):
        for k in range(100):
            if(i>=5 and j>=5 and k>=5 and i+j+k==100):
                num+=1
print (num)


3741