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文件的原理 : 第一阶段: ...
随机推荐
- C 语言实例 - 将字符串写入文件
C 语言实例 - 将字符串写入文件 C 语言实例 C 语言实例 将字符串写入文件. 实例 #include <stdio.h> #include <stdlib.h> /* e ...
- nginx+vue实现项目动静分离
一般的企业都会采用前后端分离的方式来开发.部署项目,这样做的好处是更好的让前后台各司其职.另外也由于nginx是一个轻量级的静态资源服务器,其高并发也是其优点之一.这样可以减轻双方服务器的压力,同时又 ...
- android intent安装apk
/** * 安装apk * * @param context * @param apkPath */ public static void installApk(Context context, St ...
- java简单操作redis数据库
package RedisTest; import redis.clients.jedis.Jedis; public class RedisTest { private static String ...
- C# 委托之把委托从委托链(多播委托)移除
运用“-”运算符将委托从委托链移除 class HelloWorld { //定义委托类型 delegate void DelegationChain(); static void Main(stri ...
- C# 基础之密封类
C#密封类 一.密封类 1. 密封类的定义 如果我们不希望自己编写的类被继承:如果有的类已经没有再被继承的必要,这时,我们可以使用sealed修饰符在类中进行声明,以达到该类不能派生其它类的目的,该类 ...
- insert后面value可控的盲注(第一次代码审计出漏洞)
这个叫诗龙的cms真的很感谢他的编写人,全站注入~~一些特别白痴的就不说了,这里有一个相对有点意思的 很明显的注入,然后去直接利用报错注入想爆出数据结果发现没有开报错模式. 报错注入http://ww ...
- vue cli 脚手架上多页面开发 支持webpack2.x
A yuri demo for webpack2 vue multiple page.我看到有一些项目多页面项目是基于webapck1.0的,我这个是在webpack2.x上布置修改. 项目地址: ...
- 【Linux】VirtualBox网络配置桥接模式
VirtualBox网络配置桥接模式 CentOS/RHEL (虚拟机)配置 # 基于桥接模式设置固定 ip cat >> /etc/sysconfig/network-scripts/i ...
- 登录界面点击登录后如何延迟提示成功的div的显示时间并跳转
需求: 在登录页面点击sign in跳转到下个页面之前,我需要显示成功的窗口2秒然后自动关闭 那我们来研究下setTimeout: 关于这个setTimeout首先下面的代码实现的是两秒之后再显示Su ...