• python数据类型、字符编码、文件处理-练习


    练习-字符串

     1 # 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
     2 name = " aleX"
     3 # 1)  移除 name 变量对应的值两边的空格,并输出处理结果
    1 name='   alex'
    2 a=name.strip()
    3 print(a)
     4 # 2)    判断 name 变量对应的值是否以 "al" 开头,并输出结果
    1 name='11alex'
    2 if name.startswith(name):
    3     print(name)
    4 else:
    5     print('no')
     6 # 3)    判断 name 变量对应的值是否以 "X" 结尾,并输出结果
    1 name='11alex'
    2 if name.endswith(name):
    3     print(name)
    4 else:
    5     print('no')
     8 # 4)    将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
    1 name='alex'
    2 print(name.replace('a','p'))
     9 # 5)    将 name 变量对应的值根据 “l” 分割,并输出结果。
    1 name='alex'
    2 print(name.rsplit('l'))
    10 # 6)    将 name 变量对应的值变大写,并输出结果
    1 name='alex'
    2 print(name.upper())
    12 # 7)    将 name 变量对应的值变小写,并输出结果
    1 name='aleX'
    2 print(name.lower())
    14 # 8)    请输出 name 变量对应的值的第 2 个字符?
    1 name=' aleX'
    2 print(name[2])
    15 # 9)    请输出 name 变量对应的值的前 3 个字符?
    1 name='aleX'
    2 print(name[:3])
    16 # 10)    请输出 name 变量对应的值的后 2 个字符?
    1 name='aleX'
    2 print(name[-2:])
    18 # 11)    请输出 name 变量对应的值中 “e” 所在索引位置?
    1 name='aleX'
    2 print(name.index('e'))
    20 # 12)    获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
    1 name='aleX'
    2 a=name[:-1]
    3 print(a)

     练习-列表

     1 1. 有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
     1 data=['alex',49,[1900,3,18]]
     2 name =data[0]
     3 age=data[1]
     4 birthday=data[2][0]
     5 birthday1=data[2][1]
     6 birthday2=data[2][2]
     7 obj={
     8     'name':name,
     9     'age':age,
    10     'birthday':birthday,
    11     'birthday1':birthday1,
    12     'birthday2':birthday2
    13 }
    14 print(obj)
     3 2. 用列表模拟队列(先进先出)
     1 l=[]#这个的意思是先进先出,先是从右边进去,先出的话就是从左边出来
     2 l.append('alex')
     3 l.append('wupeiqi')
     4 l.append('yuanhao')
     5 l.append('xiangyanghua')
     6 print(l)
     7 print(l.pop(0))#pop本来是从右边先输出,如果加上0就代表是从左边先出
     8 print(l.pop(0))
     9 print(l.pop(0))
    10 print(l.pop(0))
    1 l=[]#这个是第二种方式
    2 l.insert(0,'alex')#这个指的是都是从0这边进去,所以最后就是xiaoming最后进去的,
    3 l.insert(0,'wupeqi')
    4 l.insert(0,'yuanhao')
    5 l.insert(0,'xiaoming')
    6 print(l.pop())
    7 print(l.pop())
    8 print(l.pop())
    9 print(l.pop())
     5 3. 用列表模拟堆栈#先进后出,后进先出
     1 l=[]
     2 l.insert(0,'zhoulian')
     3 l.insert(0,'xiaoming')
     4 l.insert(0,'qixiang')
     5 print(l.pop(0))
     6 print(l.pop(0))
     7 print(l.pop(0))
     8 l=[]
     9 l.append('zhoulian')
    10 l.append('xiaoming')
    11 l.append('qixiang')
    12 print(l.pop())
    13 print(l.pop())
    14 print(l.pop())
     7 4. 有如下列表,请按照年龄排序(涉及到匿名函数)
     8 l=[
     9     {'name':'alex','age':84},
    10     {'name':'oldboy','age':73},
    11     {'name':'egon','age':18},
    12 ]
    13 答案:
    14 l.sort(key=lambda item:item['age'])
    15 print(l)

     元组-练习

    1 #简单购物车,要求如下:
    2 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
     
     1 # msg_dic={
     2 # 'apple':10,
     3 # 'tesla':100000,
     4 # 'mac':3000,
     5 # 'lenovo':30000,
     6 # 'chicken':10,
     7 # }#让用户不断的买东西,就要有一个循环,客户不可能上来就买,他要看到信息,所以要把信息都打印出来
     8 # goods=[]
     9 # while True:
    10 #     for k in msg_dic:
    11 #         print(k,msg_dic[k])#到这一步列出用户要买什么了
    12 #     choice=input('商品名: ').strip()#让用户输入自己买什么了
    13 #     if len(choice) ==0 or choice not in msg_dic:#这个地方判断他有可能输入为空那长度就为0了or用户输入的不在msg_dic下
    14 #         print('输入商品名非法')
    15 #         continue#从这个地方到上面意思是如果输入的商品不存在,就重新输入
    16 #     num=input('购买个数:').strip()
    17 #     if not num.isdigit():#如果不是数字
    18 #         print('请输入个数非法')
    19 #         continue
    20 #     goods.append((choice,msg_dic[choice],int(num)))
    21 #     print('购物车',goods)

     字典-练习

    1 1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
    2 
    3 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
    1 dic={'k1':[],'k2':[]}
    2 num=[11,22,33,44,55,66,77,88,99]
    3 for i in num:
    4     if i >66:
    5         dic['k1'].append(i)
    6     else:
    7         dic['k2'].append(i)
    8 print(dic)
     1 s='hello alex alex say hello sb sb'
     2 统计s中每个单词的个数
     3 l=s.split()
     4 dic={}
     5 for item in l:
     6     if item in dic:
     7         dic[item]+=1
     8     else:
     9         dic[item]=1
    10 print(dic)

     集合-练习

    1   一.关系运算
    2   有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
    3   pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    4   linuxs={'wupeiqi','oldboy','gangdan'}
    5   1. 求出即报名python又报名linux课程的学员名字集合
        print(pythons & linuxs)
    6   2. 求出所有报名的学生名字集合
        print(pythons | linuxs)
    7   3. 求出只报名python课程的学员名字
        print(pythons-linuxs)
    8   4. 求出没有同时这两门课程的学员名字集合
        print(pythons ^linuxs)
    去重
    二.去重
    
       1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
    1 l=['a','b',1,'a','a']
    2 print(set(l))
       2.在上题的基础上,保存列表原来的顺序
    1 l=['a','b',1,'a','a']
    2 ll=[]
    3 for i in l:
    4     if i not in ll:
    5         ll.append(i)
    6 print(ll)
       3.去除文件中重复的行,肯定要保持文件内容的顺序不变
       4.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序
    
    l=[
        {'name':'egon','age':18,'sex':'male'},
        {'name':'alex','age':73,'sex':'male'},
        {'name':'egon','age':20,'sex':'female'},
        {'name':'egon','age':18,'sex':'male'},
        {'name':'egon','age':18,'sex':'male'},
    ]  

     作业

    #作业一: 三级菜单
    #要求:
    打印省、市、县三级菜单
    可返回上一级
    可随时退出程序
     1 menu = {
     2     '北京':{
     3         '海淀':{'五道口':{'soho':{},'网易':{},'google':{}},
     4         '中关村':{'爱奇艺':{},'汽车之家':{},'youku':{},},
     5         '上地':{'百度':{},},
     6         },
     7         '昌平':{'沙河':{'老男孩':{},'北航':{},},
     8         '天通苑':{},
     9         '回龙观':{},
    10         },
    11         '朝阳':{},
    12         '东城':{},
    13     },
    14     '上海':{
    15         '闵行':{"人民广场":{'炸鸡店':{}}},
    16         '闸北':{'火车战':{'携程':{}}},
    17         '浦东':{},},
    18 }
    19 tag=True
    20 while tag:
    21     for province in menu:#列出所有的省
    22         print(province)#输出北京和上海
    23     province_in = input('请输出查询的省份(q退出):').strip()  # 提示输出一个省份
    24     if province_in in menu:
    25         while tag:
    26             for city in menu[province_in]:
    27                 print(city)
    28             city_in =input('请输入城市名(b返回,q退出):').strip()
    29             if len(city_in) ==0:
    30                 print('输入不能为空')
    31                 continue
    32             if city_in in menu[province_in]:
    33                 while tag:
    34                     for county in menu[province_in][city_in]:
    35                         print(county)
    36                     county_in=input('请输入县级名(b返回,q退出):')
    37                     if county_in in menu[province_in][city_in]:
    38                         while tag:
    39                             for home in menu[province_in][city_in][county_in]:
    40                                 print(home)
    41                                 home_in =input('请输入工作单位(b返回,q退出):')
    42                                 if home_in in menu[province_in][city_in][county_in].keys():
    43                                     while tag:
    44                                         print('到单位的,别转了,再转就晕了')
    45                                         end_in =input('继续查询请输入(b返回,q退出)')
    46                                         if end_in =='b':
    47                                             break
    48                                         elif end_in =='q':
    49                                             exit()
    50                                         else:
    51                                             print('请重新输入')
    52                                 elif home_in.strip()=='b':
    53                                     break
    54                                 elif home_in.strip()=='q':
    55                                     exit()
    56                                 else:
    57                                     print('请重新输入')
    58                     elif county_in.strip()=='b':
    59                         break
    60                     elif county_in.strip()=='q':
    61                         exit()
    62                     else:
    63                         print('请重新输入')
    64             elif city_in.strip()=='b':
    65                 break
    66             elif county_in.strip()=='q':
    67                 exit()
    68             else:
    69                 print('请重新输入')
    70     elif province_in.strip()=='b':
    71         break
    72     elif province_in.strip()=='q':
    73         print('bey')
    74         exit()
    75     else:
    76         print('请重新输入(q退出)')
    77         continue
    1 #作业二:请闭眼写出购物车程序
    2 #需求:
    3 用户名和密码存放于文件中,格式为:egon|egon123
    4 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序
    5 允许用户根据商品编号购买商品
    6 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
    7 可随时退出,退出时,打印已购买商品和余额
     1 print('------------欢迎登陆涛涛购物广场-------------')
     2 username=input('请输入用户名:')
     3 pwd=input('请输入密码:')
     4 merchandise_list=[
     5     ('iphone',6000),
     6     ('lenovo',5600),
     7     ('oppo',4000),
     8     ('huawei',6500)
     9 ]
    10 shop_lists=[]
    11 for k,v in enumerate(merchandise_list):
    12     print(k,v)
    13 tag=True
    14 while tag:
    15     money =input('请输入你的工资:')
    16     if money.isdigit():
    17         money=int(money)
    18         while tag:
    19             choise =input('请输入商品号,q退出')
    20             if choise.isdigit():
    21                 choise=int(choise)
    22                 if choise >=0 and choise<len(merchandise_list):
    23                     item=merchandise_list[choise]
    24                     if money >=item[1]:
    25                         shop_lists.append(item)
    26                         money-=item[1]
    27                         print('%s加入购物车,还剩%d元'%(item,money))
    28                     else:
    29                         print('钱太少')
    30                 else:
    31                     print('没有这个商品')
    32             elif choise=='q':
    33                 print('已退出购物广场')
    34                 for i in shop_lists:
    35                     print(i)
    36                 print('还剩%d元'%money)
    37                 break
    38             else:
    39                 print('输入有误')
    40         if tag==False:
    41             break
    42     else:
    43         print('输入有误,请重新输入')

  • 相关阅读:
    开通博客园
    ios关键字
    FirstDay
    An example for pysnmp
    remove debug symbols to a seperate file
    qemu下通过gdb调试内核时 遇到 evaluation of this expression requires the program to have a function "malloc" 错误的解决办法
    关于常识与知识的思考
    基于Qemu在ubuntu上构建linux学习环境
    How to download prebuilt toolchain
    诡异的打印异常BUG
  • 原文地址:https://www.cnblogs.com/yinfutao/p/8029893.html
Copyright © 2020-2023  润新知