In [8]:
#将前面几章用while循环的习题,用for循环实现,并尽量写成函数。
#第二次作业中 1:
n=int(input('请输入一个整数,以回车结束'))

i=0
total=0

for i in range(n):
    i=i+1
    total=total+i

print(total)
#2
n=int(input('请输入整数的个数:'))
i=0
total=0

for i in range(n):
    i=i+1
    m=int(input())
    total=total+m
    
print('输入整数的和是:',total)
#3
n=0
sum=0
mult=1
for n in range(1):
    m=int(input('请输入任意的整数'))
    sum=sum+m
    mult=mult*m
    if sum < m and mult < m**2:
           break;
print('the end')
#3.29作业中
def compute_sum(end):
    i=0
    total_n=0
    for i in range(end):
        i+=1
        total_m=((-1)**(i+1))/(2*i+1)
        total_n=total_n+total_m
    return total_n
a=4*compute_sum(1000)
b=4*compute_sum(100000)
print('当n=1000时,4倍该函数的和为:',a)
print('当n=100000时,4倍该函数的和为:',b)


请输入一个整数,以回车结束3
6
请输入整数的个数:3
3
4
5
输入整数的和是: 12
请输入任意的整数2
the end

In [22]:
#写函数,返回某个元素/对象在一个list中的位置,如果不在,则返回-1.
def number_place(n):
        for i in range(k):
            if n==numbers[i]:
                m=i+1
            else:
                m=-1
        print(m)
numbers=[1,2,3,4,5,6,7,8,9]
k=len(numbers)
n=int(input('请输入一个整数:'))
p=0
number_place(n)


请输入一个整数:3
-1

In [9]:
## 写函数,返回一个list中的最小值
def number_min(end):
    min=numbers[0]
    for i in range(n):
        if min>numbers[i]:
            min=numbers[i]
    return min
numbers=[]
n = int(input('请输入一个整数,表示将要输入的整数个数,回车结束。'))

for i in range(n):
    number=int(input())
    numbers.append(number)
number_min(numbers)


请输入一个整数,表示将要输入的整数个数,回车结束。3
1
2
3
Out[9]:
1

In [7]:
#写函数,返回一个list中所有数字的和
def number_sum(end):
    total=0
    for i in range(n):
        total=total+numbers[i]
    return total
numbers=[]
total=0
n = int(input('请输入一个整数,表示将要输入的整数个数,回车结束:'))  
for i in range(n):
    numbers.append(int(input()))
print(number_sum(numbers))


请输入一个整数,表示将要输入的整数个数,回车结束:3
1
2
3
6

In [2]:
#写函数,可求两个向量的夹角余弦值,向量可放在list中。主程序调用该函数。
import math
def number_cosz(x,y):
    b=0
    b1=0
    a1=0
    a=1
    b=1
    for i in range(n):
        a=x[i]*a
        b=y[i]*b
        a0=x[i]**2
        b0=y[i]**2
        a1=a1+a0
        b1=b1+b0
        k=b+a
    cos=k/(math.sqrt(a1*b1))
    return cos
    
x=[]
y=[]
n=int(input('请输入两向量的维数(2 or 3):'))
for i in range(n):
    x.append(int(input('请输入向量x的坐标:')))
for i in range(n):
    y.append(int(input('请输入向量y的坐标:')))
number_cosz(x,y)


请输入两向量的维数(2 or 3):2
请输入向量x的坐标:2
请输入向量x的坐标:2
请输入向量y的坐标:2
请输入向量y的坐标:2
Out[2]:
1.0

In [16]:
#挑战性习题:python语言老师为了激励学生学python,自费买了100个完全相同的
#Macbook Pro,分给三个班级,每个班级至少分5个,用穷举法计算共有多少种分法?

n=0
for i in range(5,91):
    for j in range(5,91):
        for k in range(5,91):
            if i+j+k==100:
                n=n+1
print(n)


3741