• python之路_数据类型相关例题详解


    1.变量名命名规则(3分)
    由字母、数字、下划线组成;数字不能开头;不能为python中特殊字符;见名知意,一般用下划线将单词连接
    2.字节和位关系(2分)

    1个字节由8个二进制数表示,1个二进制数代表1位,即1byte=8bite
    3.看代码写结果(2分)
    name = “wupeiqi” 
    result = name.upper() 
    print(name) 
    print(result)


       输出结果:'wupeiqi' 'WUPEIQI'         #字符串功能不改变原内容

    4.“李泉”使用utf-8编码时,占用字节以及位数;使用gbk编码时,占用字节以及位数(2分)
    utf-8(汉字占三个字节)时占用6个字节,48位;使用gbk(汉字占两个字节)时占用4个字节,32位
    #ps:可以使用如下代码查看
    print(bytes("李泉",encoding='utf-8'))
    print(bytes("李泉",encoding='gbk'))
    5.简述 一下两段代码的区别?(2分)
    #代码1:
    n1 = “wupeiqi”
    n2 = n1
    #代码2:
    n1 = “wupeiqi”
    n2 = “wupeiqi”
        第一个代码中是将n1赋值给n2,在内存中两者指向同一个地址;第二代码中n1和n2分别赋值,虽然值相同,但是在内存中存在两个不同的地址中
    6.默认字符串 中的10个功能并描述作用(10分)
    (1)upper() 全部变大写
    (2)lower() 全部变小写
    (3)strip() 首尾去空格、制表符及换行符等,指定去除的内容
    (4)split() 将字符串分割
    (5)captalisize() 首字母大写
    (6)isdecimal() 是否全部为数字
    (7)startswith() 是否以什么开头
    (8)endswith() 是否以什么结尾
    (9)lstrip() 左去空格
    (10)rstrip() 右去空格
      (11)replace() 替代
    (12)join() 连接-以一个字符串为连接符连接一个可迭代对象中的内容,内容的每一项必须为字符串
    (13)isdigit() 是否为纯数字
    (14)isalpha() 是否为纯字母
    (15)isspace() 是否为纯空格
    7.书写布尔值为False的常用值(2分)
    0 none "" [] () {}
    8.书写Python3和Python2的三个不同(3分)
    默认编码不同:py2为unicode,py3为utf-8
    除法不同:py2中"/"得整数商,py3中为正常除法
    print形式不同:py2要不要括号都可以,py3必须要有括号
    input()与raw_input(),前者为py3
    9.简述深浅拷贝(2分)
    浅拷贝直接使用copy()方法即可,只拷贝第一层数据;深拷贝需要引入copy模块,将数据的所有层都进行拷贝
    10.分别使用for和while循环实现 1 - 2 + 3 - 4 + 5 …+99 (8分)
    sum=0
    for i in range(1,100):
        if i%2==0:
            sum-=i
        else:
            sum+=i
    print(sum)
    sum=0
    i=1
    while i<100:
        if i%2==0:
            sum-=i
        else:
            sum+=i
        i+=1
    print(sum)
    11.使用range实现打印 100,99,98…1,0 (2分)
    for i in range(100,-1,-1):
        print(i)
    12. 看代码写结果(3分)
    n1 = [11,22,33]
    n2 = n1
    n3 = n1.copy()
    n1[1] = 666
    print(n1)
    print(n2)
    print(n3)
    输出结果分别为:[11,666,33] [11,666,33]  [11,22,33]
    13. 打印 9*9 乘法表(8分)即:
      1 * 1 = 1
      1 * 2 = 2 2 * 2 = 4
      1 * 3 = 3 2 * 3 = 6 …
      …
      1 * 9 = 9 2 * 9 = 18 …
    for i in range(1,10):
        for j in range(1,i+1):
            print('%d*%d=%d'%(j,i,i*j),end=' ')
        print()
    14. 判断 一下代码是否正确,如果错误则改正,否则书写结果(4分)
    name = "你{0},{1} 无理 取闹"
    n1 = name.format('冷酷','无情')
    print(n1)
    n2 = name.format(**['冷酷',' 无情'])   #错误:列表打散用1个*
    print(n2)
    name = "你{xx},{oo} 无理 取闹"
    n3 = name.format(oo='冷酷',xx='无情')
    print(n3)
    n4 = name.format(*{'xx': '冷酷', 'oo':'无情'})  #字典打散用2个*
    print(n4)
    15. 计算 用户输入的内容中索引为奇数并且值为数字的个数(7分)
    #思路一:
    msg=input("请输入内容:")
    count=0
    for v in range(0,len(msg)):
        if v%2==1 and msg[v].isdecimal():
            count+=1
    print(count)
    #思路二:
    count=0
    msg=input("请输入内容:")
    s=msg[1::2]                    #通过切片将奇数位的字符提取出来
    for v in s:
        if v.isdigit():
            count+=1
    print(count)
    16. 实现购物车(8分)
      功能要求:
      要求用户输入自己拥有总资产,例如:2000
      显示商品列表,让用户根据序号选择商品,加入购物车
      购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
      购买成功时,需要打印购物清单
      商品列表:
      v = [
    {"name": "电脑", "price": 1999},
    {"name": " 鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美 女 ", "price": 998},
    ]
    v = [
              {"name": "电脑", "price": 1999},
              {"name": " 鼠标", "price": 10},
              {"name": "游艇", "price": 20},
              {"name": "美 女 ", "price": 998},
           ]
        while True:
            money= input("请输入账户总金额:")
            money = money.strip()
            if money.isdecimal():
                money = int(money)
                break
            else:
                print("请正确输入数字 ")
        num = 1
        for item in v:
            print(num,item['name'], item['price'])
            num += 1
        cost = 0
        while True:
            index = input('请选择商品序号(q/Q结算):')
            if index.lower().strip() == "q":
                break
            index = index.strip()
            if index.isdecimal():
                index = int(index)
                index = index - 1
                if index >= 0 and index < len(v):
                    tmp = '您购买商品%s,价格:%d' %(v[index]['name'],v[index]['price'])
                    print(tmp)
                    cost += v[index]['price']
                else:
                    print('输入序号不合法')
            else:
                print('请输入数字')
        if money >= cost:
            print('购买成功')
        else:
            print('余额不足')
    17.看代码书写结果(3分)
    for i in range(0,5):
        print(i)
        for j in (0,i):
            print(j)
     代码结果为:0 0 0 1 0 1 2 0 2 3 0 3 4 0 4
    18.看代码书写结果(3分)
    while True:
        for i in range(10):
            print(i)
            if i == 5:
                continue
        else:
            break

        输出结果为:0 1 2 3 4 5 6 7 8 9

    19.补充代码(5分)
    有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有 大于 66 的值保存 至字典的第 一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
    #思路一:
        li = [11,22,33,44,55,66,77,88,99,90]
        result = {}
        a=[]
        b=[]
        for row in li:
            if row>66:
                a.append(row)
            elif row<66:
                result['k2']=b.append(row)
        result['k1']=a
        result['k2']=b
        print(result)
    #思路二:
    li = [11,22,33,44,55,66,77,88,99,90]
    result = {}
    for v in li:
        if v>66:
            if 'k1' in result:
                result['k1'].append(v)
            else:
                result['k1']=[v]
        elif v<66:
            if 'k2' in result:
                result['k2'].append(v)
            else:
                result['k2']=[v]
    print(result)
    20.写代码,将列表 li = [11,22,33,44,55]的第一个值和最后一个值相加并插入索引为3的位置(3分)
    li = [11,22,33,44,55]
    result=li[0]+li[-1]
    li.insert(3,result)
    print(li)
    21.写代码,有以下数字:1,2,3,4,5,6,7,8 共八个数字,能组成多少个互不相同且无重复的两位数?(8分)
    count=0
    for i in range(1,9):
         for j in range(1,9):
               if i!=j:
                   count+=1
    print(count)
    22.写代码,有以下列表,请找到列表中任意两个数字相加等于9的元素的索引(8分)
      nums = [2,7,11,15,1,8,7]
      结果为: [(0,1),(4,5)...]
    nums = [2,7,11,15,1,8,7]
    result=[]
    for i in range(0,len(nums)):
        for j in range(i+1,len(nums)):
            if nums[i]+nums[j]==9:
                result.append((i,j))
    print(result)
    23. 看代码,书写结果(2分)
    dic = dict.fromkeys([‘k1’,True,(11,22)],[])
    dic[‘k1’].append(6)
    dic[‘k2’].append(7)
    print(dic)
        输出结果为:{'k1':'[6,7]','k2':'[6,7]','True':'[6,7]','(11,22)':'[6,7]'}
    24.基于文件实现用户登录程序,提示用户输入用户名和密码,检查用户名是否正确。保存用户名密码的文件user.txt
    f=open('user.txt',encoding='utf-8',mode='r')
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    for line in f:
        val= line.strip().split('|')
        if name==val[0] and pwd==val[1]:
                print("登陆成功!")
         break
    25. 看代码,书写结果(2分)
    name = "海娇"
    userlist = ['老狗','方惊鸿']
    userlist.extend(name)
    print(userlist)
        输出结果为:['老狗', '方惊鸿', '海', '娇']
    26.列举int、bool、str、list、tuple、dict、set中可以作为字典的Key的类型(2分)
    可以为:数字、字符串、bool值、元组
    27.转换(6分,每个1分,最后 一个2分)
      a.将字符串 s = "alex" 转换成列表
    s = "alex"
    val=list(s)
    print(val)
      b.将字符串  s = "alex" 转换成元祖
    s = "alex"
    val=tuple(s)
     print(val)
      c.将列 表 li = ["alex", "seven"] 转换成元组
    li = ["alex", "seven"]
    val=tuple(li)
    print(val)
      d.将元祖 tu = ('Alex', "seven") 转换成列表
    li = ('alex', 'seven')
    val=list(li)
    print(val)
      e.将列表 li = ["alex", "seven"] 转换成字典且字典的key按照10开始向后递增
    #思路一:
    li = ["alex", "seven"]
    dic = {}
    j=0
    for i in range(10,10+len(li)):
         dic[i]=li[j]
          j+=1
    print(dic)
    
    #思路二:
    li = ["alex", "seven"]
    dic = {}
    j = 10
    for i in li:
        dic[j] = i
         j += 1
    print(dic)


  • 相关阅读:
    C# richtextbox 自动下拉到最后 方法 & RichTextBox读取txt中文后出现乱码
    SQL基础问题整理
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    Springcloud +redis集群
    详述一次大量删除导致MySQL慢查的分析
    2019年开源数据库报告发布:MySQL仍卫冕!
  • 原文地址:https://www.cnblogs.com/seven-007/p/7430243.html
Copyright © 2020-2023  润新知