1、统计’gvbsduifgjkdbgfjgjksgbfjsgu1234’中每一个字符出现的次数。
str3='gvbsduifgjkdbgfjgjksgbfjsgu1234'
count = {}
for item in str3:
if item not in count:
count[item] = 1
else:
count[item] += 1
for k,v in count.items():
print("字符:", k, "\t","出现次数:", v)
结果:
字符: g 出现次数: 6
字符: v 出现次数: 1
字符: b 出现次数: 3
字符: s 出现次数: 3
字符: d 出现次数: 2
字符: u 出现次数: 2
字符: i 出现次数: 1
字符: f 出现次数: 3
字符: j 出现次数: 4
字符: k 出现次数: 2
字符: 1 出现次数: 1
字符: 2 出现次数: 1
字符: 3 出现次数: 1
字符: 4 出现次数: 1
2、用户输入月份,判断这个月是哪个季节 。
分析: 3,4,5月----春季 6,7,8----夏季 9,10,11—秋季 12,1,2----冬季
a = int(input('请输入1至12中的任意一个月份:'))
if (3 <= a <= 5):
print(a, '月是春季')
elif (6 <= a <= 8):
print(a, '月是夏季')
elif (9 <= a <= 11):
print(a, '月是秋季')
else:
print(a, '月是冬季')
结果:
请输入1至12中的任意一个月份:3
3 月是春季
3、假定有下面的列表: names = [‘fentiao’,‘fendai’,‘fensi’,‘apple’] 输出结果为:‘I have fentiao, fendai, fensi and apple.’
names = ['fentiao', 'fendai', 'fensi', 'apple']
print('\'' + 'I have ' + ','.join(names[0:3]) + ' and ' + names[3] + '.' + '\'')
结果:
‘I have fentiao,fendai,fensi and apple.’
4、设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以 下功能: 提供10道加、减、乘或除四种基本算术运算的题目; 练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。
true = 0
option = ['+', '-', '*', '/']
for i in range(0, 10):
math = random.choice(option)
a = random.randint(0, 100)
b = random.randint(1, 100)
print('%.2f%s%.2f=' % (a, math, b))
answer = str(input('请输入您的答案:'))
if (math == '+'):
result = a + b
elif (math == '-'):
result = a - b
elif (math == '*'):
result = a * b
else:
result = ('%.2f' % (float(a / b)))
if answer == str(result):
print('回答正确!!!')
true += 1
i += 1
elif answer == 'exit':
break
else:
print('回答错误!!!')
i += 1
if i == 0:
accuracy = 0
else:
accuracy = true / i
print('您共回答%d道题,回答正确个数为%d,回答错误个数为%d,正确率为%.2f%%' % (i, true, i - true, accuracy * 100))
结果:
57.00+94.00=
请输入您的答案:151
回答正确!!!
56.00+62.00=
请输入您的答案:118
回答正确!!!
1.00+69.00=
请输入您的答案:70
回答正确!!!
33.00/37.00=
请输入您的答案:0.89
回答正确!!!
25.00*62.00=
请输入您的答案:1550
回答正确!!!
47.00/83.00=
请输入您的答案:0.57
回答正确!!!
46.00/68.00=
请输入您的答案:0.68
回答正确!!!
19.00-59.00=
请输入您的答案:-40
回答正确!!!
54.00+43.00=
请输入您的答案:97
回答正确!!!
62.00+57.00=
请输入您的答案:119
回答正确!!!
您共回答10道题,回答正确个数为10,回答错误个数为0,正确率为100.00%
5、有两个有序整型数组:A和B,都是从小到大排列,要求把A和B合并成数组C,且C也是有序的,例如A=[1,3,5,7…],B=[2,4,6,8…],合并成C=[1,2,3,4,5,6,7,8…],请写一个方法尽可能高效率来实现(注:不调用系统提供的函数)
def sort(A,B):
C = A + B
print('A和B合并后的数组是:', A + B)
# 插入排序
for i in range(1, len(C)):
temp = C[i]
j = i - 1
while (j >= 0 and C[j] > temp):
C[j + 1] = C[j]
j = j - 1
C[j + 1] = temp
print('合并后的数组C是:C=', C)
if __name__ == '__main__':
sort([1, 3, 5, 7, 9],[2, 4, 6, 8, 10])
结果:
A和B合并后的数组是: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
合并后的数组C是:C= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
6、将字符串"K:1|K1:2|K2:3|K3:4",处理成python字典 {‘K’: 1, ‘K1’: 2, …}
str1 = "K:1|K1:2|K2:3|K3:4"
list1 = str1.split('|')
dic = {}
for item in list1:
key = item.split(":")[0]
value = int(item.split(":")[1])
dic[key] = value
print('处理后的字典是:', dic)
结果:
处理后的字典是: {‘K’: 1, ‘K1’: 2, ‘K2’: 3, ‘K3’: 4}
7、有两个tuple(‘A’, ‘B’, ‘C’, ‘D’), (1, 2, 3, 4),如何将这两个tuple合并为一个字典?
tuple1 = ('A', 'B', 'C', 'D')
tuple2 = (1, 2, 3, 4)
dic = {}
for i in range(0, len(tuple1)):
key = tuple1[i]
value = tuple2[i]
dic[key] = value
print('处理后的字典是:', dic)
结果:
处理后的字典是: {‘A’: 1, ‘B’: 2, ‘C’: 3, ‘D’: 4}
8、一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组称作最大连续子数组,然后返回该和值即可,比如数组{2, 4, -7, 5, 2, -1, 2, -4, 3}的最大连续子数组为{ 5, 2, -1, 2},最大连续子数组的和为5+2-1+2=8
def MaxSum(array):
CurSum = 0
Sum = 0
for i in range(0, len(array)):
if (CurSum <= 0):
CurSum = array[i]
else:
CurSum += array[i]
if (CurSum > Sum):
Sum = CurSum
return Sum
if __name__ == '__main__':
ret = MaxSum([2, 4, -7, 5, 2, -1, 2, -4, 3])
print('最大连续子数组的和:', ret)
结果:
最大连续子数组的和: 8
9、请写出一段python代码实现删除一个list里面的重复元素。
def Delete(list1):
return list(set(list1))
if __name__ == '__main__':
ret = Delete([1, 1, 2, '2', 5, 5, 7, 3, 7, '22', 14, 56, 72])
print('去重后的列表为:', ret)
结果:
去重后的列表为: [1, 2, 3, ‘22’, 5, ‘2’, 7, 72, 14, 56]