zoukankan      html  css  js  c++  java
  • python之路_数据类型相关例题解析(2)

    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 alex1@live.com pwd1
    alex-2 alex2@live.com pwd2
    alex-3 alex3@live.com 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%d@live.com' %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('输入错误,请重新输入')
  • 相关阅读:
    composer阿里云短信服务不支持传参为数值--为2017年短信接口,2018阿里云有更新http://www.cnblogs.com/q1104460935/p/8916096.html
    随机生成字符串,数字,手机号,邮箱
    C#: .net序列化及反序列化 [XmlElement(“节点名称”)] [XmlAttribute(“节点属性”)] (上篇)
    自动升级功能
    C# WinForm 设置按纽为透明,使用背景色
    sql server 2000 单主键高效分页存储过程 (支持多字段排序)
    分页存储过程
    C# WinForm 解决子窗体放大后,子窗体图标放大的问题
    Windows 7/8 64位系统 不能注册32位dll 文件的解决方案
    添加ico图标
  • 原文地址:https://www.cnblogs.com/seven-007/p/7436152.html
Copyright © 2011-2022 走看看