Python3.x 基础练习题100例(31-40)
练习31:
题目:
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
程序:
letter = input("please input:")
# while letter != 'Y':
if letter == 'S':
print('please input second letter:')
letter = input("please input:")
if letter == 'a':
print('Saturday')
elif letter == 'u':
print('Sunday')
else:
print('data error')
elif letter == 'F':
print('Friday')
elif letter == 'M':
print('Monday')
elif letter == 'T':
print('please input second letter')
letter = input("please input:")
if letter == 'u':
print('Tuesday')
elif letter == 'h':
print('Thursday')
else:
print('data error')
elif letter == 'W':
print('Wednesday')
else:
print('data error')```
输出结果:
please input:F
Friday
练习32:
题目:
按相反的顺序输出列表的值。
程序:
a = ['one', 'two', 'three']
for i in a[::-1]:
print(i)
输出结果:
three
two
one
练习33:
题目:
按逗号分隔列表。
程序:
L = [1, 2, 3, 4, 5]
s1 = ','.join(str(n) for n in L)
print(s1)
输出结果:
1,2,3,4,5
练习34:
题目:
练习函数调用。
程序:
def hello_world():
print('hello world')
def three_hellos():
for i in range(3):
hello_world()
if __name__ == '__main__':
three_hellos()
输出结果:
hello world
hello world
hello world
练习35:
题目:
文本颜色设置。
程序:
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
print(bcolors.OKBLUE + "成功的颜色字体?" + bcolors.ENDC)
输出结果:
成功的颜色字体?
练习36:
题目:
求100之内的素数。
程序:
# 输出指定范围内的素数
# 用户输入数据
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower, upper + 1):
# 素数大于 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
输出结果:
输入区间最小值: 1
输入区间最大值: 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
练习37:
题目:
对10个数进行排序。
分析:
可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
程序:
if __name__ == "__main__":
N = 10
# input data
print("请输入10个数字:")
l = []
for i in range(N):
l.append(int(input('输入要排序的数字:')))
print("排序之前:")
for i in range(N):
print(l[i],end=" ")
print()
# 排列10个数字
for i in range(N - 1):
min = i
for j in range(i + 1, N):
if l[min] > l[j]: min = j
l[i], l[min] = l[min], l[i]
print('排列之后:')
for i in range(N):
print(l[i],end=" ")
输出结果:
请输入10个数字:
输入要排序的数字:1
输入要排序的数字:2
输入要排序的数字:5
输入要排序的数字:7
输入要排序的数字:8
输入要排序的数字:9
输入要排序的数字:5
输入要排序的数字:22
输入要排序的数字:3
输入要排序的数字:0
排序之前:
1 2 5 7 8 9 5 22 3 0
排列之后:
0 1 2 3 5 5 7 8 9 22
练习38:
题目:
求一个3*3矩阵主对角线元素之和。
分析:
利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
程序:
if __name__ == '__main__':
a = []
sum = 0.0
for i in range(3):
a.append([])
for j in range(3):
a[i].append(float(input("input num:")))
for i in range(3):
sum += a[i][i]
print(sum)
输出结果:
input num:4
input num:2
input num:3
input num:5
input num:6
input num:1
input num:2
input num:3
input num:7
17.0
练习39:
题目:
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
分析:
首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
程序:
if __name__ == '__main__':
# 方法一 : 0 作为加入数字的占位符
a = [1, 4, 6, 9, 13, 16, 19, 28, 40, 100, 0]
print('原始列表:')
for i in range(len(a)):
print(a[i],end=" ")
number = int(input("\n插入一个数字:"))
end = a[9]
if number > end:
a[10] = number
else:
for i in range(10):
if a[i] > number:
temp1 = a[i]
a[i] = number
for j in range(i + 1, 11):
temp2 = a[j]
a[j] = temp1
temp1 = temp2
break
print('排序后列表:')
for i in range(11):
print(a[i],end=" ")
输出结果:
原始列表:
1 4 6 9 13 16 19 28 40 100 0
插入一个数字:5
排序后列表:
1 4 5 6 9 13 16 19 28 40 100
练习40:
题目:
将一个数组逆序输出。
分析:
用第一个与最后一个交换。
程序:
if __name__ == '__main__':
a = [9, 6, 5, 4, 1]
N = len(a)
print(a)
for i in range(len(a) // 2):
a[i], a[N - i - 1] = a[N - i - 1], a[i]
print(a)
输出结果:
[9, 6, 5, 4, 1]
[1, 4, 5, 6, 9]