python基本数据类型作业

python基本数据类型作业

1.获取100以内的所有质数并把它们都放入列表中存储,所有合数再存储一个列表中

li1=[]  ##合数
li2=[]  ##质数
for item in range(2,101):
    for item1 in range(2,item):
        if item%item1==0:
            li1.append(item)
            break
        else:
            li2.append(item)
print("合数--",li1)
print("质数--",li2)

2.写一个程序:手机号验证,开头以133或者134或者135或者187号段的手机号码?假如输入非数字,提示“请输入数字”

flag=True
while flag:
    tel=input('请输入您的电话号码(输入Q或q退出):').strip()
    if tel.isdigit():
        if tel.startswith('133') or tel.startswith('134') or tel.startswith('135')or tel.startswith('187'):
            print('验证成功')
            flag=False
        else:
            print('您输入的号码有误!')
    elif tel.upper()=='Q':
        print('正在退出')
        break
    else:
        print('您输入的非正确号码!')
        
#用while...else      
tel=input("请输入一个手机号:")
while len(tel) !=11 or tel.isdigit() !=True:
    if tel.isdigit()==False:
        tel=input("请输入数字")
    else:
        if len(tel) !=11:
            tel=input("请输入正确的位数")
else:
    if tel.startswith("133") or tel.startswith("134") or tel.startswith("135")  or tel.startswith("187"):
        print("验证成功")
    else:
        print("验证失败")

3.写一个程序:有一个列表list1=[1,2,3,4,5,6,7,8,9,11,12,13,14,15,14],将所有大于11的值保存至字典的第一个key1中,小于11的值保存至字典的第一个key2中。

dic={"key1":[],"key2":[]}
list1=[1,2,3,4,5,6,7,8,9,11,12,13,14,15,14]
for item in list1:
    if item>11:
        dic["key1"].append(item)
    else:
        dic["key2"].append(item)
print(dic)


#自动添加key1和key2
dic={}
list1=[1,2,3,4,5,6,7,8,9,11,12,13,14,15,14]
for item in list1:
    if item>11:
        if "key1" in dic:
            dic["key1"].append(item)
        else:
            dic["key1"]=[item]
    else:
        if "key2" in dic:
            dic["key2"].append(item)
        else:
            dic["key2"] = [item]
print(dic)          

4.输出商品列表,用户输入序列号, 控制台显示用户选中的商品,商品列表如:shoplist=["电脑","手机","电视","菠萝"]

要求:1.控制台显示 序列号+商品的名称;2.用户输入序列号显示商品名称;3.用户输入错误的序列号,提示错误,重新输入;4.用户输入E,退出程序

shoplist=["电脑","手机","电视","菠萝"]
myshoplist=[]
for item in enumerate(shoplist,1):
    print(item[0],':',item[1])
flag=True
while flag:
    num=input('请输入商品序列号:').strip()
    if num.isdigit():
        num1=int(num)
        if num1<=len(shoplist) and num1>0:
            print('您选择了',shoplist[num1-1])
            myshoplist.append(shoplist[num1-1])
            print(myshoplist)
        else:
            print('输入超出范围')
    elif num.upper()=='Q':
        print('已退出')
        break
    else:
        print('您输入有误!重新输入')

5.通过索引值找到ff变成大写list1=[11,22,"a",[44,55,["c","ff",[3,2,"ff",1],77,88],"ff","y"]]

#列表嵌套,通过索引值改
list1[3][2][2][2]="FF"
str1=str(list1)

#通过eval改
str1=str1.replace("ff","FF",str1.count("ff"))
print(str1,type(str1))
li=eval(str1)
print(li)

6.写一个程序,输入字符串:“abc222def333ghy444uio555fgfg666”,求:

#1.字符串中数字的个数
str=input("输入字符串")
li=[]
for i in str:
    if i.isdigit()==True:
        li.append(i)
print(li,len(li))

#2.有几种数字
str=input("输入字符串")
li=[]
for i in str:
    if i.isdigit()==True:
        li.append(i)
li1=list(set(li))
print(li1,len(li1))

#3.有几段数字
str=input("输入字符串")
li=[]
for i in str:
    if i.isalpha():
        str=str.replace(i," ")
print(str)
#split():不传参数,默认以字符串中所有的空格分割
li=str.split()
print(li)

#复杂一点的方法
str1=input('输入字符串:').strip()
li=[]
str2=''
last=len(str1)
end=str1[-1]
for i in range(len(str1)):
    # print(str1[i])
    if str1[i].isdigit():
        str2 = str2 + str1[i]
        if i==last-1 and end.isdigit():
            li.append(str2)
    else:
        li.append(str2)
        str2=''
print(li)
li2=list(set(li))
for i in li2:
    if i=='':
        li2.remove(i)#如果直接循环li进行删除,不能完全删除掉,因为列表中,删除前面的元素,后面元素的索引值改变了,导致不能完成循环,不过可以加一个while li.count('')==0来控制下面的for循环进行移除'';
print(li2)
print(len(li2))

6.用input()方法:写一个程序,如用户输入1+2或者1+ 2或者 1 + 2,输出相加的和?

str1=input('请输入加式:').strip()
li=str1.split('+')
sum=0
print(li)
for i in li:
    i.strip()
    num=int(i)
    sum=sum+num
print('它们的和是:',sum)
posted @ 2021-03-13 22:26  辰-月  阅读(184)  评论(0)    收藏  举报