Python--列表练习题
Published in:2020-07-12 |

1、输入任意十个数,打印出它们中的最大数、最小数。

2、有一个列表,内放10个整数。要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。

3.青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。

4.输入某年某月某日,判断这一天是这一年的第几天?

5.已知:faibonacci(费波那契)数列的前几个数分别为0,1,1,2,3,5,……。从第3 项开始,每一项都等于前两项的和。读入一个整数n,编程求出此数列的前n 项。– 使用for循环实现

6.从键盘输入一个字符串,判断是否为回文字符串。如’abcba’为回文字符串,即第一个和最后一个相同,第二个和倒数第二个相同,依次类推

7.给你一个整数组成的列表L,按照下列条件输出: 若L是升序排列的,则输出”UP”; 若L是降序排列的,则输出”DOWN”; 若L无序,则输出”WRONG”。

8.十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示), 这些值序列保存在一个由浮点数组成的列表h中。回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,故输出一个2(序列两端不算山峰)

9.约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,现在给你n和m,请你输出最后猴王的编号。

python列表练习题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# 1、输入任意十个数,打印出它们中的最大数、最小数。
list = [int(i) for i in input('请输入十个整数:').split(',')]
max=min=list[0]
for i in range(10):
if list[i]>max:
max = list[i]
elif list[i]<min:
min = list[i]
print(max,min)

# numbers = []
# for i in range(10):
# n = int(input('请输入第' + str(i + 1) + '个数:'))
# numbers.append(n)
# if i == 0:
# max = min = n
# else:
# if n > max:
# max = n
# if n < min:
# min = n

# # 2、有一个列表,内放10个整数。要求找出最小的数和它的下标,然后把它和数
# # 组中最前面的元素对换位置。
import random
list = [random.randint(1,100) for i in range(10)]
print(list)
min = list[0]
a = 0
for i in range(10):
if min > list[i]:
min = list[i]
a = i
list[0],list[a] =list[a],list[0]
print(list)
print(min)
print(a)

# import random
#
# numbers = []
# for i in range(10):
# numbers.append(random.randint(0, 100))
#
# print(numbers)
# min = numbers[0] # 假设列表中的第0个元素就是最小数
# index = 0 # 假设最小数的下标为0
#
# for i in range(len(numbers)):
# n = numbers[i]
# if min > n:
# min = n
# index = i
#
# numbers[index],numbers[0] = numbers[0],numbers[index]
# print(numbers)

# # 3.青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去
# # 掉一个最高分和一个最低分)。
import random

list = [random.randint(1, 10) for i in range(10)]
print(list)
max = min = list[0]
average = 0
sum = 0
for i in range(10):
if list[i] > max:
max = list[i]
elif list[i] < min:
min = list[i]
sum += list[i]
average = (sum - max - min) / 10
print(sum)
print(average)

#import random
#
# numbers = []
# sum = 0
# count = 10
# for i in range(count):
# n = random.randint(80, 100)
# numbers.append(n)
# sum += n
# print(numbers,sum)
#
# max = min = numbers[0]
#
# for n in numbers:
# if n > max :
# max = n
# if n < min :
# min = n
#
# print((sum - min - max)/(count-2))

# 4.输入某年某月某日,判断这一天是这一年的第几天?
year = int(input('请输入年份:'))
mounth = int(input('请输入月份:'))
day = int(input('请输入天:'))
if mounth == 1:
print(day)
else:
for i in range(1,mounth+1,2):
day += 31
for i in range(2,mounth,2):
day += 30
print(day)
# year = int(input('请输入年:'))
# month = int(input('请输入月:'))
# day = int(input('请输入日:'))
#
# ds = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
#
# if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
# ds[1] = 29
#
# sum = 0
# for i in range(month-1):
# sum += ds[i]
#
# sum += day
#
# print(str(year)+'年'+str(month)+'月'+str(day)+'日是这一年的第'+str(sum)+'天')


# 5、已知:faibonacci(费波那契)数列的前几个数
# 分别为0,1,1,2,3,5,......。从第3 项开始,
# 每一项都等于前两项的和。读入一个整数n,编程求
# 出此数列的前n 项。-- 使用for循环实现
n = int(input('请输入一个整数:'))
a, b = 0, 1
list = [a,b]
for i in range(n):
a, b = b, a + b
list.append(b)
print(list)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85


# # 1.从键盘输入一个字符串,判断是否为回文字符串。如'abcba'为回文字符串,即第一个和最后一个相同,第二个和倒数第二个相同,依次类推
# a = list(input("请输入一个字符串:"))
# print(a)
# b = a[::-1]
# if a == b:
# print(a,'是回文字符串')
# else:
# print(a,'不是回文字符串')

# # 2.给你一个整数组成的列表L,按照下列条件输出: 若L是升序排列的,则输出"UP"; 若L是降序排列的,则输出"DOWN"; 若L无序,则输出"WRONG"。
# 示例:输入:L = [1, 1, 3, 3, 4] 输出:UP
#
# L = [1, 1, 3, 3, 4]
# count = 0
# count1 = 0
# for i in range(len(L) - 1):
# if L[i] <= L[i + 1]:
# count += 1
#
# if L[i] >= L[i + 1]:
# count1 += 1
#
# if count == len(L) - 1:
# print("UP")
# elif count1 == len(L) - 1:
# print("DOWN")
# else:
# print("WRANG")

# # 3.十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示), 这些值序列保存在一个由浮点数组成的列表h中。
# # 回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。
# # 例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,故输出一个2(序列两端不算山峰)
# # h = [0.9, 1.2, 1.1, 1, 0.9, 0.8, 0.7, 1.22, 1.6, 0.99,0.75,0.60,1.88,1.99,0.88]
# h = [0.9, 1.2, 1.22, 1.1, 1.6, 0.99]
# n = 0
# for i in range(1, len(h) - 1):
# if h[i] > h[i - 1] and h[i] > h[i + 1]:
# n += 1
# print('山峰个数:', n)

# 4.约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,现在给你n和m,请你输出最后猴王的编号。
n = int(input("输入猴子数量:"))
m = int(input("输入m:"))
residue = n

a = [i for i in range(1, n + 1)]
print(a)

while residue > 1:
if residue > m:
a.pop(m - 1)
a = a[m - 1:] + a[:m - 1]
print(a)
residue -= 1
elif residue == m:
a.pop()
residue -= 1
print(a)
elif residue < m:
a = a[m % residue:] + a[:m % residue-1]
residue -= 1
print(a)

# n = int(input('n:')) # 6
# m = int(input('m:')) # 2
# a = [i for i in range(1,n+1)]
#
# i = 0
# counter = 1
#
# while 1:
# if counter % m == 0:
# a.remove(a[i])
# counter = 1
# else:
# i+=1
# counter += 1
# if i >= len(a):
# i = 0
# if len(a) == 1:
# break
# print(a)

Prev:
Python--函数练习题
Next:
Python面试题