1.已知一个数字列表,求列表中心元素。
list1 = [1, 2, 3, 4, 10, 15, 20, 30, 40]
length = len(list1)
if length & 1 == 0:
print(list1[length // 2-1], list1[length // 2])
else:
print(list1[length // 2])
#结果:
10
Process finished with exit code 0
2.已知一个数字列表,求所有元素和。
list1 = [1, 2, 3, 4, 10, 15, 20, 30, 40]
sum1 = 0
for index in list1:
sum1 += index
print(sum1)
#结果:
125
Process finished with exit code 0
3.已知一个数字列表,输出所有奇数下标元素。
list2 = [1, 3, 4, 6, 9, 12, 21, 30]
length = len(list2)
for x in range(1, length, 2):
print(list2[x], end=' ')
#结果:
3 6 12 30
Process finished with exit code 0
4.已知一个数字列表,输出所有元素中,值为奇数的元素
list2 = [1, 3, 4, 6, 9, 12, 21, 30]
for x in list2:
if x & 1 == 1:
print(x, end=' ')
#结果:
1 3 9 21
Process finished with exit code 0
5.已知一个数字列表,将所有元素乘二
list3 = [1, 4, 6, 8, 9, 13]
length = len(list3)
for x in range(length):
list3[x] *= 2
print(list3)
#结果:
[2, 8, 12, 16, 18, 26]
Process finished with exit code 0
6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的 。
names = ['赵大', '钱二', '张三', '张三', '李四', '王五', '赵大', '李四', '王五', '孙六']
new_names = []
for x in names:
if x not in new_names:
new_names.append(x)
print(new_names)
#结果:
['赵大', '钱二', '张三', '李四', '王五', '孙六']
Process finished with exit code 0
7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表
例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']
list1 = [2, 20, 70, 99, 208, 300]
for x in range(len(list1)):
list1[x] = chr(list1[x])
print(list1)
#结果:
['\x02', '\x14', 'F', 'c', 'Ð', 'Ĭ']
Process finished with exit code 0
8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)
scores = [65, 75, 80, 90, 90, 80, 80, 95]
scores.remove(max(scores))
scores.remove(min(scores))
sum1 = 0
for x in range(len(scores)):
sum1 += scores[x]
print(sum1 / len(scores))
#结果
82.5
Process finished with exit code 0
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, 'a']
Process finished with exit code 0
10.有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)
例如: nums = [19, 89, 90, 600, 1] —> 600
nums = [20, 40, 67, 90, 800, 40, 2]
a = 0
for x in nums:
if x >= a:
a = x
print(a)
#结果:
800
Process finished with exit code 0
11..获取列表中出现次数最多的元素
例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
index = None
max_a = 0
a = 0
for x in range(len(nums)):
for y in range(x, len(nums)):
if nums[x] == nums[y]:
a += 1
if a >= max_a:
max_a = a
index = x
print('出现最多次数的元素:', nums[index] )
#结果:
出现最多次数的元素: 3
Process finished with exit code 0
================作业2====================
1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
length = 0.08 / 1000
a = 0
while length < 8848.13:
length *= 2
a += 1
print(a)
#结果;
27
Process finished with exit code 0
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
n = 6
a = 1
b = 1
if n == 1 or n == 2:
print('当前月兔子总数是: 1')
else:
for x in range(n - 3):
a, b = b, a + b
print('当前月兔子总数是:', a + b)
#结果:
当前月兔子总数是: 8
Process finished with exit code 0
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
A = int(input('请输入一个正整数'))
print(A, '=', end='')
while A > 1:
for x in range(2, A+1):
if A % x == 0:
A = int(A / x)
if A == 1:
print(x, end='')
else:
print(x, '*', end='')
break
print()
#结果
请输入一个正整数90
90 =2 *3 *3 *5
Process finished with exit code 0
- 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
- 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
-
获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数
6 =1* 2*3 -> 丑数
2 = 1*2 -> 丑数
7 = 1*7 -> 不是丑数
1, 2, 3, 4, 5, 6, 8,9,10, 12 ….