python经典练习十道(四)

1、请输入星期几的第1个字母,用来判断是星期几,如果第1个字母一样,则继续判断第2个字母,以此类推。

week = ['Sunny','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
while True:
	myStr = input('请输入任意一个字母:')
	upMyStr = myStr.upper()
	for weekS in week:
		if upMyStr == weekS[0]:
		    if weekS.startswith('M'):
			    print('星期一')
		    elif weekS.startswith('W'):
			    print('星期三')
		    elif weekS.startswith('F'):
			    print('星期五')
		    elif weekS.startswith('T') or weekS.startswith('S'):
			    secondStr = input('再输入一个字母:')
			    newStr = upMyStr+secondStr
			    print(newStr)
			    for weekStr in week:
				    if weekStr.find(newStr,0,2) != -1:
					    if newStr == 'Tu':
						    print('星期二')
					    elif newStr == 'Th':
						    print('星期四')
					    elif newStr == 'Sa':
						    print('星期六')
					    elif newStr == 'Su':
						    print('星期日')
					    break


输出的结果如下:

2、接收输入的一行字符,统计出字符串中包含数字的个数。

myStr = input ('请输入任意字符串:')
num = 0
for s in myStr:
	num +=1
print(num)

输出结果如下:

3、编写一个程序,计算字符串中子串出现的次数。

str = 'Hello ! How do you want to do'
print(str.count('o'))

输出如下:

扫描二维码关注公众号,回复: 9384344 查看本文章

这种写法比较简单,还可以扩展一下,添加输入以及换统计的字符

s = str(input('请输入一个字符串:'))
print(s.count('o'))

输出如下:

4、编写一个函数,用于判断用户输入字符串是否由小写字母和数字构成。

def message():
	myStr = input('请输入密码,只能为小写字母和数字:')
	if myStr.isalnum() and myStr.lower() == myStr:
		print('符合要求')
	else:
		print('不符合要求')
message()

输出如下:

5、已知arr=[1,2,3],输出arr=[3,2,1]

方法一:
arr = [1,2,3,4,5,6]
arr.reverse()
print(arr)

方法二:
arr =[1,2,3]
arr.sort(reverse =True)
print(arr)

输出如下:

6、用户输入n,然后输入n个整数到列表中,列表中的n个整数需要使用冒泡进行排序,并将排序后的结果输出 

arr = []
length = int(input("请输入数字的总个数:"))
i = 0
while i < length:
   num =  int(input("输入第%d个数字:"%(i+1)))
   arr.append(num)
   i+=1
print("排序前:%s"%arr)
# 对列表排序
for i in range(length):
    flag = 0
    for j in range(1,length):
        if arr[j-1] > arr[j]:
            arr[j-1],arr[j] = arr[j],arr[j-1]
            flag = 1
    if not flag:
        break
print("排序后:%s"%arr)

输出结果如下:

7、请编写一个程序,实现删除列表中重复元素的功能。

arr = []
length = int(input("请输入列表的总个数:"))
i = 0
while i < length:
   element =  input("输入第%d个元素:"%(i+1))
   arr.append(element)
   i+=1
# 列表转为集合
newList = set(arr)
print(newList)

输出如下:

8、假设有两个3×3的矩阵,请编写一个程序,计算这两个矩阵的和并输出。

def add(a, b):
    # 下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以
    assert (len(a) == len(b))
    assert (all([len(a[i]) == len(b[i]) == len(a[0]) for i in range(len(a))]))
    i, j = len(a), len(a[0])
    c = [[0] * j] * i
    for m in range(i):
        for n in range(j):
            c[m][n] = a[m][n] + b[m][n]
    return c
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
c = add(a, b)
print(c)

输出如下:

9、请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生的信息 

dic = {}
i=0
while i<3:
     number = input("输入学生学号:")
     name = input("输入学生姓名:")
     dic.__setitem__(number,name)
     i+=1
print("排序前:%s"%dic)
def dict2list(dic:dict):
    ''' 将字典转化为列表 '''
    keys = dic.keys()
    vals = dic.values()
    lst = [(key, val) for key, val in zip(keys, vals)]
    return lst
new = sorted(dict2list(dic), key=lambda x:x[0], reverse=False)
print("排序后:%s"%new)

输出如下:

10、已知一个列表存储了多个整数,请编写函数,删除列表中的素数

arr1 = [12,3,37,7,91,67,27,45,6]
arr2 = [12,3,37,7,91,67,27,45,6]
def delPrime(arr1):
    for element in arr2:
        # 质数大于 1
        if element > 1:
            # 查看因子
            for i in range(2, element):
                if (element % i) == 0:
                    break
            else:
                arr1.remove(element)
delPrime(arr1)
print(arr1)

输出如下:

发布了114 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Jmayday/article/details/103270392