6.8 习题
1.将前面几章用while循环的习题,用for循环实现,并尽量写成函数。
In [12]:
#练习2:仿照实践1,写出由用户指定整数个数,并由用户输入多个整数,并求和的代码。
n = int(input('请输入一个你想要输入的整数个数,以回车结束:'))
numbers = [i for i in range(n+1)]
print(sum(numbers))
In [ ]:
2.写函数,返回一个list中所有数字的和
In [2]:
#写函数,返回一个list中所有数字的和
def sum_list(numbers):
sum=0
for i in numbers:
sum += i
return sum
numbers=[]
n = int(input('请输入list中元素的个数:'))
j = 0
while j < n:
numbers.append(int(input('请输入一个整数')))
j += 1
print(numbers)
print(sum_list(numbers))
3.写函数,返回一个list中的最小值
In [3]:
n=int(input('请输入你要输入的整数个数,以回车结束'))
a=[]
i=0
while i<n:
a.append(int(input('请输入一个整数')))
i=i+1
print(a)
print(min(a))
4.写函数,返回某个元素/对象在一个list中的位置,如果不在,则返回-1.
In [6]:
def location_a(a):
if k in a:
i=0
while i<n:
if k==a[i]:
return i+1
i += 1
if k not in a:
return -1
n=int(input('请输入你要输入的整数个数,以回车结束:'))
a=[]
i=0
while i<n:
a.append(int(input('请输入一个整数:')))
i=i+1
print(a)
k = int(input('请输入要判断的一个整数,回车结束:'))
print(location_a(a))
5.写函数,可求两个向量的夹角余弦值,向量可放在list中。主程序调用该函数。
In [5]:
def cosx(a,b):
if len(a)==len(b):
aCb=0
a2=0
b2=0
for i in range(len(a)):
aCb+=a[i]*b[i]
a2+=a[i]**2
b2+=b[i]**2
print(a,'和',b,'夹角的的余弦值为',aCb/((a2*b2)**0.5))
a=[]
b=[]
n = int(input('请输入向量所在的空间的维数,2或3:'))
j = 0
for i in range(n):
for j in range(n):
if(i==0):
a.append(int(input('请输入向量a的一个坐标')))
else:
b.append(int(input('请输入x坐标')))
print('a =',a,',','b =',b)
cosx(a,b)
6.挑战性习题:python语言老师为了激励学生学python,自费买了100个完全相同的Macbook Pro, 分给三个班级,每个班级至少分5个,用穷举法计算共有多少种分法?
In [1]:
n=0
for i in range(5,91):
for j in range(5,91):
for k in range(5,91):
if(100==i+j+k):
n=n+1# print('第一个班级:',i,' 第二个班级:',j,' 第三个班级:',k)
print(n)