python学习_day04___阶段作业解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习_day04___阶段作业解析相关的知识,希望对你有一定的参考价值。
1.执行Python脚本的两种方式
a、 运行cmd,在黑框中输入编译器地址及要运行脚本的地址 b、在pycharm中编译脚本
2.简述位与字节的关系
1个字节由8个二进制数构成,即1byte=8bit
3.简述asscii码、unicode、utf-8、gbk的关系
asscii(8位,未包含其他国家字符) unicode(16或32位,万国码,占内存) utf-8(8-32位,汉字24位) gbk(16位,主要为汉字)
4.请写出“李杰”分别用utf-8和gbk编码所占的位数
utf-8占24位,gbk占16位
5.python单行注释与多行注释分别用什么?
单行注释为:# 多行注释为:三个引号包着注释内容(单引号或者双引号)
6.声明变量注意哪些事项?
变量名只能由字母、数字、下划线组成;且数字不能开头;变量名不能与特殊字符一致 见名知意原则
7.如有以下变量n1=15,请使用int提供的方法,得到该变量最少用多少二进制位表示?
n1=15 val=n1.bit_length() print(val)
8.布尔值分别有什么?
True和False,其中False主要有:0 none "" [] () {}
9.阅读代码,请写出执行结果
a="alex" b=a.capitalize() print(a) print(b)
输出结果为:alex Alex
10.写代码,有如下变量,请按照要求实现每个功能。name=" aleX"
a.移除name变量对应值两边的空格,并输出移除后的内容
name = " aleX" val=name.strip() print(val)
b.判断name变量是否以“al”开头,并输出结果
name = "aleX" if name.startswith(‘al‘): print("确实以al开头")
c.判断变量name对应的值是否以“X”结尾,并输出结果。
name = "aleX" if name.endswith(‘X‘): print("确实以X结尾")
d.将name变量对应值中的“l”替换成“p”,并输出结果。
name = "aleX" val=name.replace(‘l‘,‘p‘) print(val)
e.将name变量对应的值根据“l”分割,并输出结果。
name = "aleX" val=name.split(‘l‘) print(val) #结果为:[‘a‘,‘eX‘]
f.请问上一题e中分割后得到的值是什么类型?
列表类型
g.将name变量对应的值变大写,并输出结果。
name = "aleX" val=name.upper() print(val)
h.将name变量对应的值变小写,并输出结果。
name = "aleX" val=name.lower() print(val)
i.请输出变量name对应值的第2个字符
name = "aleX" print(name[1])
j.请输出变量name对应值的前3个字符
name = "aleX" print(name[0:3])
k.请输出name变量对应值的后2个字符。
name = "aleX" print(name[-2:])
l.获取子序列,仅不包含最后一个字符,如:oldboy,则获取oldbo
name = "oldboy" print(name[0:-1])
11.写代码,分别使用whlie和for循环分别打印字符串每个字符。
name="hello world!" for i in name: print(i)
name="hello world!" i=0 while i<len(name): print(name[i]) i+=1
12.请用代码实现:li=[‘alex‘,‘eric‘,‘rain‘],利用下划线将列表中的每一个元素拼接成字符串:"alex_eric_rain"
#方法一: li=[‘alex‘,‘eric‘,‘rain‘] val="_".join(li) print(val)
#方法二: li=[‘alex‘,‘eric‘,‘rain‘] val="" for i in range(0,len(li)): if i==0: val=val+li[i] else: val=val+"_"+li[i] print(val)
#方法三: li=[‘alex‘,‘eric‘,‘rain‘] msg = "" is_first = True for item in li: if is_first: tmp = item is_first =False else: tmp = "_" + item msg += tmp print(msg)
13.实现一个整数加法计数器:
如:content=input("请输入内容:"),如用户输入5+9,然后进行分割再计算
#方法一: sum=0 content=input("请输入内容:") msg=content.split(‘+‘) for v in msg: sum=sum+int(v.strip()) print(sum)
#方法二: content = input(‘请输入表达式:‘) a,b = content.split(‘+‘,1) a = int(a.strip()) b = int(b.strip()) print(a+b)
14.计算用户输入的内容中有几个整数?如:content=input("请输入内容:") #ssfka98374hjf326
content=input("请输入内容:") count=0 for v in content: if v.isdecimal(): count+=1 print(count)
15.简述int和9等数字,以及str和"xxoo"等字符串的关系?
功能对象
16制作趣味模板程序,需求:等待用户输入名字、地点、爱好,根据以上内容任意实现。如:敬爱可亲的xx,最喜欢在xx干xx
#方法一: name=input("姓名:") place=input("地点:") hobby=input("爱好:") print("敬爱可亲的%s,最喜欢在%s干%s" %(name,place,hobby))
#方法二: name=input("姓名:") place=input("地点:") hobby=input("爱好:") val="敬爱可亲的{0},最喜欢在{1}干{2}" val=val.format(name,place,hobby) print(val)
17.制作随机验证码,不区分大小写。
流程:
-用户执行程序
-给用户显示输入的验证码
-用户输入的值
用户输入的的值与显示的值相同时显示正确信息;否则继续生成随机验证码继续等待用户输入,生成随机验证码代码如下:
def check_code(): import random checkcode=‘‘ for i in range(4): current=random.randrange(0,4) if current!=i: temp=chr(random.randint(65,90)) else: temp=random.randint(0,9) checkcode+=str(temp) return checkcode
while True: code=check_code() print(code) msg=input("请输入验证码:") a=code.strip().upper() b=msg.strip().upper() if a==b: print("登陆成功") break else: print("请重新输入!")
18.开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符,如敏感字符列表为:li=["苍老师","东京热"],则将用户输入的任意敏感字符串替换为***
li=["苍老师","东京热"] msg=input("请输入内容:") for v in li: if v in msg: msg= msg.replace(v,‘***‘) print(msg)
19.查找列表中元素,移除每个元素的空格,并且查找以‘a‘或者‘A‘开头,并且以‘c‘结尾的所有元素。
li=["alec","aric","Alex","Tony","rain"]
tu=("alec","aric","Alex","Tony","rain")
dic={‘k1‘:"alec",‘k2‘:"aric",‘k3‘:"Alex",‘k4‘:"Tony"}
#列表: #方案1: li=["alec","Aric","Alex","Tony","rain"] for v in li: v=v.strip() if (v[0]==‘a‘ or v[0]==‘A‘)and v[-1]==‘c‘: print(v) #方案2: li=["alec","Aric","Alex","Tony","rain"] for v in li: if v.strip().lower().startswith(‘a‘)and v.strip().endswith(‘c‘): print(v)
#元组: tu=("alec","aric","Alex","Tony","rain") for v in tu: v=v.strip() if (v[0]==‘a‘ or v[0]==‘A‘)and v[-1]==‘c‘: print(v)
#字典: dic={‘k1‘:"alec",‘k2‘:"Aric",‘k3‘:"Alex",‘k4‘:"Tony"} for v in dic.values(): if v.strip().lower().startswith(‘a‘) and v.strip().endswith(‘c‘): print(v)
20.写代码,有如下列表,按照要求实现每一个功能:li=["alex","eric","rain"]
a.计算列表长度并输出。
li=["alex","eric","rain"] print(len(li))
b.列表中追加元素"seven",并输出添加后的列表
li=["alex","eric","rain"] li.append(‘seven‘) print(li)
c.请在列表的第一个位置添加‘tony‘,并输出添加后的列表
li=["alex","eric","rain"] li.insert(0,‘tony‘) print(li)
d.请修改列表第二个元素为"lelly",并输出修改后的列表
li = ["alex", "eric", "rain"] li[1]="lelly" print(li)
f.请删除列表第二个元素,并输出删除的元素及删除后的列表
#方法1. li = ["alex", "eric", "rain"] val=li.pop(1) print(val,li)
#方法2. li = ["alex", "eric", "rain"] print(li[1]) del li[1] print(li)
g.请删除列表中的第三个元素,并输出删除后的列表
li = ["alex", "eric", "rain"] del li[2] print(li)
h.请删除列表中2到4位的元素,并输出删除后的列表
li = ["alex", "eric", "rain"] del li[1:4] print(li)
i.请将列表中的所有元素反转,并输出反转后的列表
li = ["alex", "eric", "rain"] li.reverse() print(li)
j.请使用while及len输出列表的索引值
li = ["alex", "eric", "rain"] i=0 while i<len(li): print(i) i+=1
l.请使用for循环输出列表的所有元素
li = ["alex", "eric", "rain"] for v in li: print(v)
21.写代码,有如下列表,请按照功能要求实现每一个功能。
li=[‘hello‘,‘seven‘,[‘mon‘,[‘h‘,‘kelly‘],‘all‘],123,446]
a.请根据索引输出‘kelly‘
li=[‘hello‘,‘seven‘,[‘mon‘,[‘h‘,‘kelly‘],‘all‘],123,446] print(li[2][1][1])
b.请根据索引找到‘all‘元素,并将其修改为"ALL",如li[0][1][9]...
li=[‘hello‘,‘seven‘,[‘mon‘,[‘h‘,‘kelly‘],‘all‘],123,446] print(li[2][2]) li[2][2]="ALL" print(li)
22.写代码,有如下元组,按照要求实现每一个功能。
tu=(‘alex‘,‘eric‘,‘rain‘)
a.计算元组长度并输出
tu=(‘alex‘,‘eric‘,‘rain‘) print(len(tu))
b.获取元组的第2个元素,并输出
tu=(‘alex‘,‘eric‘,‘rain‘) print(tu[1])
c.获取元组的第1-2个元素,并输出
tu=(‘alex‘,‘eric‘,‘rain‘) print(tu[0:2])
d.请使用for循环输出元组的元素
tu=(‘alex‘,‘eric‘,‘rain‘) for v in tu: print(v)
e.请使用whlie、len输出元组的索引值,如0,1,2....
tu=(‘alex‘,‘eric‘,‘rain‘) i=0 while i<len(tu): print(i) i+=1
23.有如下变量,请按照要求实现功能
tu=(‘alex‘,[11,22,{"k1":"v1","k2":[‘age‘,‘name‘],"k3":(11,22,33)},44])
a.讲述元组的特性
元组中的元素不可变,元素可以根据数据类型进行变换---即儿子不可以变,孙子可变
b.请问tu中的第一个元素‘alex‘是否可以被修改?
不可以
c.请问tu变量中"k2"对应的值是什么类型?是否可以被修改?如果可以在其中添加一个元素"seven"
list列表类型,可以被修改
tu=(‘alex‘,[11,22,{"k1":"v1","k2":[‘age‘,‘name‘],"k3":(11,22,33)},44]) val=tu[1][2]["k2"] val.append("seven") print(val,tu)
d.请问变量tu中"k3"对应的值是什么类型?是否可以被修改?如果可以在其中添加一个元素"seven"
元组tuple类型,不可以被修改
24字典:dic={"k1":"v1","k2":"v2","k3":[11,22,33]}
a.请循环出所有的key
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} #情况一: for v in dic: print(v) #情况二: for v in dic.keys(): print(v)
b.请循环出所value的值
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} # 情况一: for v in dic: print(dic[v]) # 情况二: for v in dic.values(): print(v)
c.请循环输出所有的key和value
#情况一: dic={"k1":"v1","k2":"v2","k3":[11,22,33]} for a,b in dic.items(): print(a,b) #结果为单个字符:k1 v1 k2 v2 k3 [11, 22, 33] #情况二: dic={"k1":"v1","k2":"v2","k3":[11,22,33]} for v in dic.items(): print(v) #结果为元组:(‘k1‘, ‘v1‘) (‘k2‘, ‘v2‘) (‘k3‘, [11, 22, 33])
d.请在字典中添加一个键值对:"k4":"v4",输出添加后的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} dic[‘k4‘]="v4" print(dic)
e.请修改字典中"k1"对应的值为:"alex",并输出修改后的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} dic[‘k1‘]="alex" print(dic)
f.请在k3对应的值中添加一个元素44,并输出修改后的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} dic[‘k3‘].append(44) print(dic)
g.请在字典中k3对应的值的第一个位置插入元素18,并输出修改后的字典
dic={"k1":"v1","k2":"v2","k3":[11,22,33]} dic[‘k3‘].insert(0,18) print(dic)
25.元素分类:有如下值集合li=[11,22,33,44,55,66,77,88,99,90],将所有值大于66的保存在字典"k1‘中,将所有值小于66的保存在字典‘k2‘中。即:{‘k1‘:所有大于66的列表,‘k2‘:所有小于66的列表}
#思路一 li=[11,22,33,44,55,66,77,88,99,90] dic={} for v in li: if v>66: if ‘k1‘ in dic: dic[‘k1‘].append(v) else: dic[‘k1‘]=[v] elif v<66: if ‘k2‘ in dic: dic[‘k2‘].append(v) else: dic[‘k2‘] = [v] print(dic)
#思路二 li=[11,22,33,44,55,66,77,88,99,90] dic={} a=[] b=[] for v in li: if v>66: a.append(v) elif v<66: b.append(v) dic[‘k1‘]=a dic[‘k2‘]=b print(dic)
26.输出商品列表,用户输入序号,显示用户选中的商品
商品 li=["手机","电脑","鼠标垫","游艇"]
要求:页面显示 序号+商品名称,如:
1 手机
2 电脑
...
用户输入商品名称序号,然后打印商品名称
li=["手机","电脑","鼠标垫","游艇"] num=1 for v in li: print("%d %s" %(num,v)) num+=1 while True: val=input("选择商品序号:") val=int(val) if val>0 and val<5: print("商品名称为:%s" %li[val-1]) break else: print("序号不合法,请重新输入")
27.列举字符串、数字中布尔值为False的所有值
布尔值为False的值主要有:0 none "" [] () {}
28.有两个列表:
l1=[11,22,33]
l2=[22,33,44]
a.获取内容相同的元素列表
l1=[11,22,33] l2=[22,33,44] result=[] for i in l1: for j in l2: if i==j: result.append(i) print(result)
b.获取l1中有,l2中没有的元素的列表
l1=[11,22,33] l2=[22,33,44] result=[] for i in l1: for j in l2: if i==j: break else: result.append(i) print(result)
c.获取l2中有,l1中没有的的元素的列表
l1=[11,22,33] l2=[22,33,44] result=[] for i in l2: for j in l1: if i==j: break else: result.append(i) print(result)
d.获取l1和l2中都不同的元素
l1=[11,22,33] l2=[22,33,44] result=[] for i in l1: for j in l2: if i==j: break else: result.append(i) for u in l2: for v in l1: if u==v: break else: result.append(u) print(result)
29.购物车
功能要求:
要求用户输入自己的总资产,如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总金额大于资产,提示余额不足,否则购买成功
goods=[{‘name‘:"电脑",‘price‘:"1999"},
{‘name‘: "鼠标", ‘price‘: "10"},
{‘name‘: "游艇", ‘price‘: "20"},
{‘name‘: "美女", ‘price‘: "998"}
]
goods=[{‘name‘:"电脑",‘price‘:"1999"}, {‘name‘: "鼠标", ‘price‘: "10"}, {‘name‘: "游艇", ‘price‘: "20"}, {‘name‘: "美女", ‘price‘: "998"} ] #1.用户输入金额 while True: total=input("请输入总金额:") total=total.strip() if total.isdigit(): total=int(total) print("你的总金额为;%d" %total) break else: print("输入不合法,请重新输入") #2.显示商品 num=1 for v in goods: print(num,v[‘name‘],v[‘price‘]) num+=1 #3.购买商品 cost=0 while True: val=input("请选择商品(输入q结算);") val=val.strip() if val.lower()==‘q‘: break if val.isdigit(): val=int(val) if val>0 and val<5: print(goods[val-1][‘name‘],goods[val-1][‘price‘]) cost+=int(goods[val-1][‘price‘]) else: print("你输入的商品不存在") else: print("输入不合法,请重新输入") if total>=cost: print("购买成功") else: print("余额不足")
30.分页显示内容
a.通过for循环创建301条数据,数据类型如下:
alex-1 [email protected] pwd1
alex-2 [email protected] pwd2
alex-3 [email protected] pwd3
.....
ps:可以使用while循环自己创建user_list=[],循环创建字典{"user":‘xxx‘,"email":‘xxx‘,"pwd":""},将创建的字典追加到列表
b.提示用户,请输入要查看的页码,当用户输入指定页码,则显示指定数据
注意:每页显示10页数据;用输入内容为非十进制数字时,提示输入错误
u
user_list=[] i=1 while i<=301: user_list.append({‘user‘:‘alex-%d‘ %i,‘email‘:‘alex%[email protected]‘ %i,‘pwd‘:‘pwd%d‘ %i}) i+=1 while True: page=input(‘请输入页码:‘) if page.strip().isdigit(): page=int(page) if page>0 and page<32: start=10*(page-1) end=10*page current_user_list=user_list[start:end] for v in current_user_list: print(v) else: print("页码不错在请重新输入") else: print(‘输入错误,请重新输入‘)
以上是关于python学习_day04___阶段作业解析的主要内容,如果未能解决你的问题,请参考以下文章
Python学习笔记:day16 模块基础知识(timedatetimejsonpicleshutillogging)