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文件的原理 : 第一阶段: ...
随机推荐
- PAT甲级——1131 Subway Map (30 分)
可以转到我的CSDN查看同样的文章https://blog.csdn.net/weixin_44385565/article/details/89003683 1131 Subway Map (30 ...
- Tinghua Data Mining 2
数据预处理 https://www.bilibili.com/video/av23933161/?p=11 http://www.xuetangx.com/courses/course-v1:Tsin ...
- Codeforces 1137B(kmp next数组构造)
为了物尽其用,Next求出最多有哪部分能重复使用,然后重复使用就行了-- const int maxn = 5e5 + 5; char s[maxn], t[maxn]; int cnts0, cnt ...
- MyBatis中时间格式的映射问题
简单地说,就是Java的Date类可以直接映射到Mysql的TIMESTAMP或者是DATETIME(按道理应该是映射成DATE的) 具体的看这两篇博客吧: 1. MySql中TIMESTAMP和DA ...
- 18002 Z-Scan 模拟题
18002 Z-Scan 时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: 不限定 Description Z-Scan is a method ...
- jquery.validate自定义验证--成功提示与择要提示
1. 自定义验证--成功提示 1) 添加选项 errorClass: "unchecked", validClass: "checked", errorElem ...
- jasmine+karma 自动化单元测试
测试的必须性 相信大家都知道测试的必要性,测试先行的概念.不过,写了这么多年的代码,除了之前用java的时候写过一些测试用例,还真的很少写过前端的测试用例,或者做一些自动化测试.感觉做单元测试还是很有 ...
- maven创建springMVC项目(一)
1.Eclipse配置 添加maven集成安装包:路径是maven下载安装的解压位置,如果不知道如何下载安装请点击这里看我的另一篇安装文章,这里不多说 这里需要注意的是: a.settings.xml ...
- 2、替换空格------------>剑指offer系列
题目 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 代码 1.直接用空格将字符串切割成 ...
- hihocoder1032 最长回文子串
思路: manacher模板. 实现: #include <iostream> #include <cstring> using namespace std; ]; strin ...