python数据类型、字符编码、文件处理-练习
练习-字符串
# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# ) 移除 name 变量对应的值两边的空格,并输出处理结果
name=' alex'
a=name.strip()
print(a)
# ) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
name='11alex'
if name.startswith(name):
print(name)
else:
print('no')
6 # ) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
name='11alex'
if name.endswith(name):
print(name)
else:
print('no')
8 # ) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name='alex'
print(name.replace('a','p'))
# ) 将 name 变量对应的值根据 “l” 分割,并输出结果。
name='alex'
print(name.rsplit('l'))
# ) 将 name 变量对应的值变大写,并输出结果
name='alex'
print(name.upper())
# ) 将 name 变量对应的值变小写,并输出结果
name='aleX'
print(name.lower())
# ) 请输出 name 变量对应的值的第 个字符?
name=' aleX'
print(name[])
# ) 请输出 name 变量对应的值的前 个字符?
name='aleX'
print(name[:])
# ) 请输出 name 变量对应的值的后 个字符?
name='aleX'
print(name[-:])
# ) 请输出 name 变量对应的值中 “e” 所在索引位置?
name='aleX'
print(name.index('e'))
# ) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name='aleX'
a=name[:-]
print(a)
练习-列表
. 有列表data=['alex',,[,,]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
data=['alex',,[,,]]
name =data[]
age=data[]
birthday=data[][]
birthday1=data[][]
birthday2=data[][]
obj={
'name':name,
'age':age,
'birthday':birthday,
'birthday1':birthday1,
'birthday2':birthday2
}
print(obj)
. 用列表模拟队列(先进先出)
l=[]#这个的意思是先进先出,先是从右边进去,先出的话就是从左边出来
l.append('alex')
l.append('wupeiqi')
l.append('yuanhao')
l.append('xiangyanghua')
print(l)
print(l.pop())#pop本来是从右边先输出,如果加上0就代表是从左边先出
print(l.pop())
print(l.pop())
print(l.pop())
l=[]#这个是第二种方式
l.insert(,'alex')#这个指的是都是从0这边进去,所以最后就是xiaoming最后进去的,
l.insert(,'wupeqi')
l.insert(,'yuanhao')
l.insert(,'xiaoming')
print(l.pop())
print(l.pop())
print(l.pop())
print(l.pop())
. 用列表模拟堆栈#先进后出,后进先出
l=[]
l.insert(,'zhoulian')
l.insert(,'xiaoming')
l.insert(,'qixiang')
print(l.pop())
print(l.pop())
print(l.pop())
l=[]
l.append('zhoulian')
l.append('xiaoming')
l.append('qixiang')
print(l.pop())
print(l.pop())
print(l.pop())
. 有如下列表,请按照年龄排序(涉及到匿名函数)
l=[
{'name':'alex','age':},
{'name':'oldboy','age':},
{'name':'egon','age':},
]
答案:
l.sort(key=lambda item:item['age'])
print(l)
元组-练习
#简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
 # msg_dic={
 # 'apple':,
 # 'tesla':,
 # 'mac':,
 # 'lenovo':,
 # 'chicken':,
 # }#让用户不断的买东西,就要有一个循环,客户不可能上来就买,他要看到信息,所以要把信息都打印出来
 # goods=[]
 # while True:
 #     for k in msg_dic:
 #         print(k,msg_dic[k])#到这一步列出用户要买什么了
 #     choice=input('商品名: ').strip()#让用户输入自己买什么了
 #     if len(choice) == or choice not in msg_dic:#这个地方判断他有可能输入为空那长度就为0了or用户输入的不在msg_dic下
 #         print('输入商品名非法')
 #         continue#从这个地方到上面意思是如果输入的商品不存在,就重新输入
 #     num=input('购买个数:').strip()
 #     if not num.isdigit():#如果不是数字
 #         print('请输入个数非法')
 #         continue
 #     goods.append((choice,msg_dic[choice],int(num)))
 #     print('购物车',goods)
字典-练习
  有如下值集合 [,,,,,,,,,...],将所有大于  的值保存至字典的第一个key中,将小于  的值保存至第二个key的值中
 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
 dic={'k1':[],'k2':[]}
 num=[,,,,,,,,]
 for i in num:
     if i >:
         dic['k1'].append(i)
     else:
         dic['k2'].append(i)
 print(dic)
s='hello alex alex say hello sb sb'
统计s中每个单词的个数
l=s.split()
dic={}
for item in l:
if item in dic:
dic[item]+=
else:
dic[item]=
print(dic)
集合-练习
一.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
. 求出即报名python又报名linux课程的学员名字集合
print(pythons & linuxs)
. 求出所有报名的学生名字集合
print(pythons | linuxs)
. 求出只报名python课程的学员名字
print(pythons-linuxs)
. 求出没有同时这两门课程的学员名字集合
print(pythons ^linuxs)
去重
二.去重 . 有列表l=['a','b',,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
l=['a','b',,'a','a']
print(set(l))
.在上题的基础上,保存列表原来的顺序
l=['a','b',,'a','a']
ll=[]
for i in l:
if i not in ll:
ll.append(i)
print(ll)
.去除文件中重复的行,肯定要保持文件内容的顺序不变
.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序 l=[
{'name':'egon','age':,'sex':'male'},
{'name':'alex','age':,'sex':'male'},
{'name':'egon','age':,'sex':'female'},
{'name':'egon','age':,'sex':'male'},
{'name':'egon','age':,'sex':'male'},
]
作业
#作业一: 三级菜单
#要求:
打印省、市、县三级菜单
可返回上一级
可随时退出程序
 menu = {
     '北京':{
         '海淀':{'五道口':{'soho':{},'网易':{},'google':{}},
         '中关村':{'爱奇艺':{},'汽车之家':{},'youku':{},},
         '上地':{'百度':{},},
         },
         '昌平':{'沙河':{'老男孩':{},'北航':{},},
         '天通苑':{},
         '回龙观':{},
         },
         '朝阳':{},
         '东城':{},
     },
     '上海':{
         '闵行':{"人民广场":{'炸鸡店':{}}},
         '闸北':{'火车战':{'携程':{}}},
         '浦东':{},},
 }
 tag=True
 while tag:
     for province in menu:#列出所有的省
         print(province)#输出北京和上海
     province_in = input('请输出查询的省份(q退出):').strip()  # 提示输出一个省份
     if province_in in menu:
         while tag:
             for city in menu[province_in]:
                 print(city)
             city_in =input('请输入城市名(b返回,q退出):').strip()
             if len(city_in) ==:
                 print('输入不能为空')
                 continue
             if city_in in menu[province_in]:
                 while tag:
                     for county in menu[province_in][city_in]:
                         print(county)
                     county_in=input('请输入县级名(b返回,q退出):')
                     if county_in in menu[province_in][city_in]:
                         while tag:
                             for home in menu[province_in][city_in][county_in]:
                                 print(home)
                                 home_in =input('请输入工作单位(b返回,q退出):')
                                 if home_in in menu[province_in][city_in][county_in].keys():
                                     while tag:
                                         print('到单位的,别转了,再转就晕了')
                                         end_in =input('继续查询请输入(b返回,q退出)')
                                         if end_in =='b':
                                             break
                                         elif end_in =='q':
                                             exit()
                                         else:
                                             print('请重新输入')
                                 elif home_in.strip()=='b':
                                     break
                                 elif home_in.strip()=='q':
                                     exit()
                                 else:
                                     print('请重新输入')
                     elif county_in.strip()=='b':
                         break
                     elif county_in.strip()=='q':
                         exit()
                     else:
                         print('请重新输入')
             elif city_in.strip()=='b':
                 break
             elif county_in.strip()=='q':
                 exit()
             else:
                 print('请重新输入')
     elif province_in.strip()=='b':
         break
     elif province_in.strip()=='q':
         print('bey')
         exit()
     else:
         print('请重新输入(q退出)')
         continue
#作业二:请闭眼写出购物车程序
#需求:
用户名和密码存放于文件中,格式为:egon|egon123
启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
 print('------------欢迎登陆涛涛购物广场-------------')
 username=input('请输入用户名:')
 pwd=input('请输入密码:')
 merchandise_list=[
     ('iphone',),
     ('lenovo',),
     ('oppo',),
     ('huawei',)
 ]
 shop_lists=[]
 for k,v in enumerate(merchandise_list):
     print(k,v)
 tag=True
 while tag:
     money =input('请输入你的工资:')
     if money.isdigit():
         money=int(money)
         while tag:
             choise =input('请输入商品号,q退出')
             if choise.isdigit():
                 choise=int(choise)
                 if choise >= and choise<len(merchandise_list):
                     item=merchandise_list[choise]
                     if money >=item[]:
                         shop_lists.append(item)
                         money-=item[]
                         print('%s加入购物车,还剩%d元'%(item,money))
                     else:
                         print('钱太少')
                 else:
                     print('没有这个商品')
             elif choise=='q':
                 print('已退出购物广场')
                 for i in shop_lists:
                     print(i)
                 print('还剩%d元'%money)
                 break
             else:
                 print('输入有误')
         if tag==False:
             break
     else:
         print('输入有误,请重新输入')

python数据类型、字符编码、文件处理-练习的更多相关文章
- python第二周数据类型  字符编码  文件处理
		第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ... 
- Python常见字符编码间的转换
		主要内容: 1.Unicode 和 UTF-8的爱恨纠葛 2.字符在硬盘上的存储 3.编码的转换 4.验证编码是否转换正确 5.Python bytes类型 前 ... 
- Python基础-字符编码与转码
		***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ... 
- Python的字符编码
		Python的字符编码 1. Python字符编码简介 1. 1 ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ... 
- python 3字符编码
		python 3字符编码 官方链接:http://legacy.python.org/dev/peps/pep-0263/ 在Python2中默认是ascii编码,Python3是utf-8编码 在p ... 
- Python 的字符编码
		配置: Python 2.7 + Sublime Text 2 + OS X 10.10 本文意在理清各种编码的关系并以此解决 Python 中的编码问题. 1 编码基本概念 只有先了解字符表.编码字 ... 
- 转:Python常见字符编码及其之间的转换
		参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ... 
- Python常用字符编码(转)
		Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ... 
- Python之字符编码与文件操作
		目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ... 
- what's the python之字符编码与文件处理
		用文本编辑器打开一个文件就是把一个文件读入了内存中 ,所以打开文件的操作也是在内存中的,断电即消失,所以若要保存其内容就必须点击保存让其存入硬盘中 python解释器执行py文件的原理 : 第一阶段: ... 
随机推荐
- D - Fliptile
			#include <stdio.h> #include <iostream> #include <math.h> #include <algorithm> ... 
- SQL COUNT DISTINCT 函数
			定义和用法 可以一同使用 DISTINCT 和 COUNT 关键词,来计算非重复结果的数目. 语法 SELECT COUNT(DISTINCT column(s)) FROM table 例子 注意: ... 
- nginx和uwsgi的区别和作用
			Django+uwsgi+nginx nginx和uwsgi的区别和作用: 1, nginx是对外的服务器,外部浏览器通过url访问nginx, uwsgi是对内的服务器,主要用来处理动态请求. 2, ... 
- 24	使用Maven 或 Gradle构建groovy
			1 使用Maven 或 Gradle构建groovy 1.1 使用maven构建groovy pom.xml file. <dependencies> ... oth ... 
- python入门之实例-购买商品
			需求: 选择商品,结算所选的商品 #目前总资产 asset_all = 0 #所选商品总价 all_price = 0 #购物车列表,目前已选择商品 #每个元素的结构:"商品名": ... 
- 530 Minimum Absolute Difference in BST 二叉搜索树的最小绝对差
			给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值.示例 :输入: 1 \ 3 / 2输出:1解释:最小绝对差为1,其中 2 和 1 的差的绝对值为 ... 
- SSAS 维度属性自定义排序
			默认设置: 排序设置: 
- [github][https模式下提交记住密码]
			git版本 1.7.9以后 1. 开启 git config --global credential.helper cache 2. 设置时间 git config credential.helpe ... 
- 使用SpringCloud-Netflix
			目录 SpringCloud-Netflix 配置统一依赖管理 创建服务注册中心 创建服务提供者 创建服务消费者 SpringCloud-Netflix Spring Cloud 是一个相对比较新的微 ... 
- vue使用props动态传值给子组件里的函数用,每次更新,呼叫函数
			父组件 <template> <div id="app"> <div>详情内容</div> <button v-on:clic ... 
