列表基础
1求列表中心元素。
list1 = [12,34,69,34,22]
if len(list1) % 2 == 0:
print('中心元素是:',[])
else:
zx = int((len(list1)-1) / 2) #下标从0开始,len是从1开始。
print('中心元素是:',list1[zx])
2求所有元素和。
list1 = [12,34,69,34,22]
numhe = 0
for he in list1:
numhe += he
print('这个列表的和是:%d' % numhe)
list1 = [12,34,69,34,22] #简单方法二
numhe = sum(list1)
print('这个列表的和是:%d' % numhe)
3输出所有奇数下标元素。
list1 = [12,34,69,34,22]
list_jieg = []
num = -1
for x in list1:
num += 1
if num % 2 != 0:
list_jieg .append(x)
print(list_jieg)
4.输出所有元素中,值为奇数的。
list_jishu = []
list1 = [12,34,69,34,22]
for he in list1:
if he % 2 != 0:
list_jishu.append(he)
print(list_jishu)
5将所有元素乘二。
list1 = [12,34,69,34,22]
list_jigu =[]
for x in list1:
list_jigu.append(x * 2)
print(list_jigu)
6有一个长度是10的列表,数组内有10个人名,要求去掉重复的例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
names = ['张三', '李四', '大黄', '张三','李四', '大黄','熊大','熊二','光头强','哪吒']
listh = []
for x in names:
if x not in listh:
listh.append(x)
print(listh)
7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
list1 = [97, 98, 99]
list2 = []
for x in list1:
list2.append(chr(x))
print(list2)
8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
listdf = [4,6,8,9,7,8,6,8]
listdf.remove(min(listdf))
listdf.remove(max(listdf))
he = 0
for x in listdf:
he += x
he =he / len(listdf)
print('平均分:%.2f' % he)
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 x in A:
if x in B:
C.append(x)
print(C)
第二部分
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)婴幼儿0-3 儿童3-6、少年6-18、青年18-35、中年36-60、老年61-
num = 1
while num == 1:
num2 = input('请输入年龄:')
if num2 == 'end':
break
elif 0 < int(num2) <= 3:
print('婴幼儿。')
elif 3 < int(num2) <= 6:
print('儿童。')
elif 6 < int(num2) <= 18:
print('少年。')
elif 18 < int(num2) <= 35:
print('青年。')
elif 36 < int(num2) <= 60:
print('中年。')
elif 61 < int(num2):
print('老年。')
2计算5的阶乘 5!的结果是
ji = 1
for x in range(1,6):
ji *= x
print('5!阶乘积:%d' % ji)
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。注3!=3*2*1
he1 = 0
num = 1
for x in range(1, 21):
for jic in range(1, x + 1):
num *= jic
he1 += num
num = 1
print(he1)
# 1 = 1 2 = 1*1 + 1*2 +1 * 2 * 3 3 = 1*1 + 1*2 +1 * 2 * 3
# x = 1 jic = 1 he1 = 1
#x = 2 jic = 1 num = 1 ; jic = 2 num = 1*2 he1 = 3
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
he1 = 0
num = 1
sang = 0
for x in range(1,21):
for jic in range(1,x + 1):
num *= jic
sang = 1 / num
num = 1
he1 += sang
print(he1)
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
he = 0
num = int(input('请输入一个大于0的数:'))
while num > 0:
he += num
num = int(input('请输入一个大于0的数:'))
print(he)
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
a = 5 #num = int(input('请输入相加的位数:,))
s = input('请输入相加的数字:')
he = 0
for x in range(1,a + 1):
x = s * x
for m in range(1):
he += int(x)
print(he)
方法二:
a = 5 #num = int(input('请输入相加的位数:,))
s = input('请输入相加的数字:')
he = []
for x in range(1,a + 1):
x = s * x
he.append(int(x))
print(sum(he))
7.输入三个整数x,y,z,请把这三个数由小到大输出。
list1 = []
listjg = []
for x in range(3):
num = int(input('请输入三个整数:'))
list1.append(num)
#(list1)产生了新的列表,要重新赋值。
listjg = sorted(list1)
print(listjg)
8.控制台输出三角形
n = 9
xin = '*'
houj = '*'
for x in range(1,10,2): #1,3,5,7,9
if x < 2:
xin *= x
print(xin.center(9,' ') + '\n')
elif 2 < x < 9:
xin = '*' + ' ' * (x - 2) + '*'
xin.center(9, ' ')
print(xin.center(9, ' ') + '\n')
elif x == 9:
houj *= x
print(houj)
a.根据n的值的不同,输出相应的形状
n = 5时 n = 4 ( ◤ 倒直角三角形)
***** ****
**** ***
*** **
** *
*
n = int(input("请输入一个整数:"))
xin = '*'
while n > 0:
xin *= n
xin.ljust(n,' ')
n -= 1
print(xin,'\n')
xin = '*'
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7(等腰三角形)
* *
*** ***
***** *****
*******
n = int(input("请输入一个奇数:"))
xin = '*'
for x in range(1,n + 1,2):
xin *= x
#xin.center(n,' ')
print(xin.center(n,' '),'\n')
xin = '*'
9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。i = 9 行 j = 9 列
for i in range(1, 10): #i = 1,2,3,4,---9 i每大一位运行一次,
j = 1 #range后面不要写会改变的值,用while
he = []
while j <= i:
ji = j * i # ji = 2 j = 1--2 i = 2
he.append('%d * %d = %d ' % (j, i, ji))
j += 1
print(he)
#for j in range(1, i + 1):
# ji = j * i
# he.append('%d * %d = %d ' % (j, i, ji))
# j += 1
# print(he) 这个也可以
* 1: i = 1 j = 1 1*1 = 1 he[1*1 = 1] -- j = 2 he = [] ji = 1 *【【【【【2: i = 2 j = 1 ji = 1*2 j = 2 --- ji = 2 * 2 j = 3 he = [] ji = 1 *【【【【3: i = 3 j = 1
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,
大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
大马数量x 中马y 小马w 3x + 2y + w/2 = 100 and x + y + w = 100
for w in range(101):
for y in range(51):
for x in range(34):
if 3*x + 2*y + w/2 == 100 and x + y + w == 100:
print('大马%d,中马%d,小马%d ' % (x, y, w))
11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
x是公鸡 y是母鸡 w雏鸡 5*x + 3*y + w/3 = x + y + w
for w in range(101):
for y in range(34):
for x in range(21):
if 5*x + 3*y + w/3 == 100 and x + y + w == 100:
print('公鸡%d,母鸡%d,雏鸡%d ' % (x, y, w))
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉, 可如有哪些购买结合?
洗发水x瓶 香皂y个 牙刷w个 x*15 + y*2 + w*5 = 100 且3种都要大于0
for w in range(1, 21):
for y in range(1, 51):
for x in range(1, 7):
if x*15 + y*2 + w*5 == 100:
print('洗发水%d,香皂%d,牙刷%d ' % (x, y, w))
网友评论