列表基础
1.已知一个列表,求列表中心元素。
list1=[1,3,4,7,8]
index=len(list1) #中心元素是什么?
i=(index)//2
print('中间的数 是',list1[i])
2.已知一个列表,求所有元素和。
list1=[1,3,4,7,8]
print(sum(list1))
................
list1=[1,3,4,7,8]
sum=0
for num in list1:
sum+=num
print(sum)
3.已知一个列表,输出所有奇数下标元素。
list1=[1,3,4,7,8]
print(list1[1::2])
4.已知一个列表,输出所有元素中,值为奇数的。
list1=[1,3,4,7,8]
for num in list1:
if num%2!=0:
print(num)
5.已知一个列表,将所有元素乘二。
list2=[]
list1=[1,3,4,7,8]
for num in list1:
list2=num*2
print(list2)
n=[1,2]
for x in range(len(n)):
x*=2
print(n)
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的
例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
names=['张三', '李四', '大黄', '张三']
del names[-1]
print(names)
...........
names=['张三', '李四', '大黄', '张三']
names.pop()
print(names)
names = ['张三', '李四', '大黄', '张三']
for name in names[:]:
if names.count(name)>1:
names.remove(name)
print(names)
7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
list1 = [97, 98, 99]
list2=[]
for num in list1:
n=chr(num)
list2.append(n)
print(n)
8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
grade=[78,77,65,90,,69,88,55]
a=max(grade)
b=min(grade)
for num in grade:
sum+=num
ave=(sum-a-b)/(len(grade)-2)
75.4
9.有另个列表A和B,使用列表C来获取两个列表中公共的元素
例如: A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] --> C = [1, 'a']
A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
C=[]
for num1 in range(len(A)):
for num2 in range(len(B)):
if A[num1] == B[num2]:
C.append(B[num2])
print(C)
周末
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
age=input('输入年龄 :')
if age > '80':
print('老人')
elif age>'40':
print('q青年人')
elif age>'18':
print('成年人')
else:
print('未成年')
2.计算5的阶乘 5!的结果是
print(12345)
sum=1
for x in range(1,6):
sum*=x
print('5!结果是:%d'%sum)
结果:
5!结果是:120
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
i=1
sum1 = 0
for i in range(1,n+1):
num = i
for j in range(i-1,0,-1):
num*=j
sum1 += num
print(sum1)
..........
num=0
sum=1
for x in range(1,21):
sum*=x
num+=sum
print('20!累加结果是:%d'%num)
2561327494111820313
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
def sum_fengshu(n):
sum=0
for x in range(1,n+1):
sum+=1/jiecheng2(x)
return sum
def jiecheng2(n):
if n==0:print("参数无意义")
if n==1:return 1 #函数嵌套必须赋予初值
return n*jiecheng2(n-1)
print(sum_fengshu(20))#1.7182818284590455
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
sum=0
while True:
n=int(input('输入数字:'))
if n>0:
sum+=n
elif n<0:
print('请输入正整数:')
else:
break
print('和:%s'%sum)
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
m='0'
def sum1(n):
a='2'
sum1=0
for i in range(1,n+1):
sum1=sum1+int(a*i)
return sum1
print(sum1(2))
7.输入三个整数x,y,z,请把这三个数由小到大输出。
x=int(input('输入整数x:'))
y=int(input('输入整数y:'))
z=int(input('输入整数z:'))
list1=[x,y,z]
print(sorted(list1))
8.控制台输出三角形
a.根据n的值的不同,输出相应的形状
n=int(input('输入整数'))
for i in range (n,0,-1):
m='*'*i
print(m)
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
[图片上传失败...(image-d826d-1546088816037)]
for i in range(1,10):
for j in range(1,i+1):
print(str(j )+ "x"+str(i) + "=" + str(i*j)+ "\t",end='')
print('')
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
for x in range(1,32):
for y in range(1,50):
for z in range(1,190):
if 3*x+2*y+1%2*z==100:
print(x,y,z)
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
for x in range(1,20):
for y in range(1,34):
for z in range(1,301):
if 5*x+3*y+z/3 == 100:print(x,y,z)
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
"""
x洗发水(15元),y香皂(2元),z牙刷(5元)
"""
要买就至少每个都买一个
for x in range(1,7):
for y in range(1,49):
for z in range(1,20):
if x*15+y*2+z*5==100:
print(x,y,z)