python 容器练习题

一、元组练习

fruits = ("apple","banana","strawberry","pear")
#a. 1计算元组长度并输出
a = len(fruits)     #全局函数len()
print("元组长度为:",a)
print("---------------------------------")
#a.2
num = 0
for i in fruits:
    num += 1
print(num)
print("---------------------------------")
# b.获取元组第2个元素并输出
fruit1 = fruits[2]
print(fruit1)
print("---------------------------------")
# c.获取元素第2-3个元素并输出
fruit2 = fruits[1:3]
print(fruit2)
print("---------------------------------")
# d.使用for循环遍历输出元组
for i in fruits:     #i就是元组里面的元素
    print(i)

print("---------------------------------")

for i in range(len(fruits)):   #通过下标取出元素
    print(i,fruits[i])

二、字典练习题

dict = {"k1":"v1","k2":"v2","k3":"v3"}
# 1、请循环遍历出所有的key
for key in dict:
    print(key)
print("---------------------------------")
# 2、请循环遍历出所有的value
for value in dict.values():
    print(value)
print("---------------------------------")
# 3、请循环遍历出所有的key和value
for key,value in dict.items():
    print(key,value)

for key in dict:   #通过下标取出元素
    print(key,dict[key])
print("---------------------------------")
# 4、请在字典中增加一个键值对,"k4":"v4",输出添加后的字典
dict["k4"] = "v4"
dict.update({'k4':'v4'})      #字典方法,二种都可以
print(dict)
print("---------------------------------")
# 5、请删除字典中键值对"k1":"v1",并输出删除后的结果
del dict['k1']
print(dict)
print("---------------------------------")
# 6、请删除字典中键"k5"对应的键值对,如果字典中不存在键"k5",则不报错,返回None
re1 = 0
try:
    del dict['k5']
    print('删除成功')
except:
    print(None)
print("---------------------------------")
# 7、请获取字典中"k2"对应的值
value2 = dict['k2']
# 8、请获取字典中"k6"对应的值,如果不存在,则不报错,并且让其返回None。
re2 = 0
try:
    print(dict['k6'])
except:
    print(None)
print("---------------------------------")
# 9、现有dict2 = {"k1":"v1","a":"b"},通过一行操作使dict2 = {"k1":"v1","k2":"v2","k3":"v3","a":"b"}
dict2 = {"k1":"v1","a":"b"}
dict2.update(dict)
print(dict2)

三、集合练习题:

#1、生成了N个1~100之间的随机整数(N<=1000),N是用户输入的; 对于期指其中重复的数字,只保留一个,把其余相同的数字去掉;
import random
numbers = []
num = int(input("随机生成的数量:"))
for i in range(num):
    nums = random.randint(1,100)
    numbers.append(nums)

for i in range(len(numbers)):     #除去重复元素
    for i in numbers:
        if numbers.count(i) > 1:
            numbers.remove(i)
print(numbers)
print("---------------------------------")
#2、怎么使用集合完成列表的去重操作,并将最终的列表由大到小排序输出。
list1 = [1,1,4,5,8,7,4,5,6,7]
set1 = set(list1)        #集合中自动除去重复元素,但是集合无序,不能完成排序操作
list2 = list(set1)       #集合转换为列表
lenth = len(list2)
#冒泡排序
for i in range(lenth):
    for j in range(i,lenth-i):
        if list2[i] > list2[j]:
            list2[i] ,list2[j] = list2[j] ,list2[i]
print(list2)

四、字符串练习题 :

#1、计算用户输入的字符串内容中有几个十进制数字?几个字母? # 如:asduiaf878123jkjsfd-‐213928 数字有12个。 字母有13个
str = input("请输入:")
num = 0
StrNumber = 0
for i in str:
    if i.isdigit():
        num += 1
    elif i.isalpha():
        StrNumber += 1
    else:
        pass
print(f"数字有{num}个----字母有{StrNumber}个")
print("---------------------------------")
#2、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:将敏感词内容替换为***
a = ["hello" ,"people", "world"]   #假设里面是敏感词
b =  ''
def filter(str):
    for i in a:
        if i in str:
            b = str.replace(i,"***",len(a))

str = input("请输入:")
filter(str)
print(b)
print("---------------------------------")
#3、制作随机验证码,不区分大小写 流程: - 随机产生6位验证码(字母数字组成) - 给用户显示需要输入验证码 - 用户输入的值 - 用户输入的值和显示的值相同时显示正确的信息,否则继续生成新的验证码等待用户输入
import random

nums=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M',
         'N', 'O', 'P', 'Q','R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
         'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i','j', 'k', 'l', 'm',
         'n', 'o', 'p', 'q', 'r','s', 't', 'u', 'v', 'w', 'x', 'y', 'z',
         '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

while True:
    Identifying_Code = ""
    for i in range(6):
        Identifying_Code += random.choice(nums)

    print('验证码:',Identifying_Code)
    a = input("请输入验证码:")
    if a.lower() == Identifying_Code.lower():   #(a.lower(),字符串方法,把字母变为小写)
        print("验证码正确")
        break
    else:
        print("验证码错误")
print("---------------------------------")

五.列表练习题

# 1、一组成绩67,90,-20,105,88,92,请将负分改为0,超过100的置为100,然后输出。
arr = [67,90,-20,105,88,92]
for i in range(len(arr)):
    if arr[i] > 100:
        arr[i] = 100
    elif arr[i] < 0:
        arr[i] = 0
print(arr)
print("---------------------------------")
# 2、输入5个学生的成绩,降序输出,并求出平均成绩
arr2 = []
sum = 0
for i in range(5):
    score = int(input("请输入第"+str(i+1)+"个学生成绩:"))
    arr2.append(score)
arr2.sort(reverse=True)      #列表方法reverse(可选参数,True为降序)
for i in arr2:
    sum += i
print(arr2)
print("平均成绩为:",sum/5)
print("---------------------------------")
# 3、判断一个序列是否有序
arr3 = [12,71,2,5,4,14,6,13,1,16,18,19,9]
arr4 = [12,71,2,5,4,14,6,13,1,16,18,19,9]
a = 0
for i in range(len(arr3)-1):
    for j in range(i,len(arr3)-1):
        if arr3[i] < arr3[j + 1]:
            a = arr3[i]
            arr3[i] = arr3[j + 1]
            arr3[j + 1] = a
for i in range(len(arr4)):
    if arr3[i] != arr4[i]:
        print('无序')
        break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小时候不乖的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值