python学习_day04___阶段作业解析

1.执行Python脚本的两种方式    a、 运行cmd,在黑框中输入编译器地址及要运行脚本的地址 b、在pycharm中编译脚本2.简述位与字节的关系    1个字节由8个二进制数构成,即1byte=8bit3.简述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   Alex10.写代码,有如下变量,请按照要求实现每个功能。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]   pwd1alex-2    [email protected]   pwd2alex-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(‘输入错误,请重新输入‘)
时间: 2024-10-16 14:10:15

python学习_day04___阶段作业解析的相关文章

python学习(24) 使用Xpath解析并抓取美女图片

Xpath最初用来处理XML解析,同样适用于HTML文档处理.相比正则表达式更方便一些 Xpath基本规则 nodename 表示选取nodename 节点的所有子节点 / 表示当前节点的直接子节点 // 表示当前节点的子节点和孙子节点 . 表示当前节点 .. 当前节点的父节点 @ 选取属性 下面举例使用下 text = ''' <div class="bus_vtem"> <a href="https://www.aisinei.org/thread-17

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

Python学习day5作业-ATM和购物商城

Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用户间转帐 支持多用户 管理员可添加账户.指定用户额度.冻结用户等 购物车: 商品信息- 数量.单价.名称 用户信息- 帐号.密码.余额 用户可充值 购物历史信息 允许用户多次购买,每次可购买多件 余额不足时进行提醒 用户退出时 ,输出当次购物信息 用户下次登陆时可查看购物历史 商品列表分级显示 1

Python学习_列表解析和Lambda表达式

1.根据要求创建列表threes_and_fives(列表值包括1到15中能够被3或者5正常的数) threes_and_fives=[x for x in range(1,16) if x%3==0 or x%5==0] 2.lambda表达式实例(剔除掉列表中的"X") garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX" message

Python学习day3作业

Python学习day3作业 days3作业 作业需求     HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除backend 和sever信息 操作配置文件前进行备份 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建:若信息与已有信息重复则不操作 [x] 博客 [x] 查询backend下的server信息 [x] 添加backend和se

Python学习之三大名器-装饰器、迭代器、生成器

Python学习之三大名器-装饰器.迭代器.生成器 一.装饰器     装饰,顾名思义就是在原来的基础上进行美化及完善,器这里指函数,所以说装饰器就是装饰函数,也就是在不改变原来函数的代码及调用方式的前提下对原函数进行功能上的完善.其核心原理其实是利用闭包.     格式 @关键字+装饰函数          被装饰函数()      注意:@行必须顶头写而且是在被装饰函数的正上方     按照形式可以分为:无参装饰器和有参装饰器,有参装饰器即给装饰器加上参数     以下示例是一个无参装饰器,

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学

#51CTO学院四周年# python学习感受和一些愚见

先用一堆废话说一下自己学习编程的道路 本人自初中开始,一直有一个程序员的梦想,最早接触编程是初三时候,同济大学的来支教,带我们一个班的电脑课,当时老师用Q-basic编写了一个简单的计算器,自此我就爱上了编程. 到了高中,有了U盘,当时U盘病毒挺流行的,各种网上查资料,自己写了bat版的autorun专杀和免疫. 接下来就是努力学习.....努力高考了....基本没什么时间接触编程. 大学的时候,遇到一位学长,也是热爱编程的,给我推荐了vsp语言,并copy了一份当时很火的fifi小组asp教程

2019年python学习路线

Python的代码效率很高,10行Python代码可以完成C20行代码的工作,并且错误概率更低.随着监管的加强和最佳实践的普及,python的性能和可用性得到越来越多的认可.2019年python学习路线分享给你.怎样学编程?编程就如同你学习开车,即使,你可以一口气,说出一辆车的全部零部件,以及内燃机进气.压缩.做功和排气过程,但你就是不去练如何开车,怎么上路.你确定,你敢开吗?你敢开,我也不敢坐.同样地,学十几年的英语,应该也有10000 h+,按照一万小时定律,你我英语水平应该都不错,至少能