练习-字符串

 # 写代码,有如下变量,请按照要求实现每个功能 (共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数据类型、字符编码、文件处理-练习的更多相关文章

  1. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  2. Python常见字符编码间的转换

    主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5.Python bytes类型 前 ...

  3. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  4. Python的字符编码

    Python的字符编码 1. Python字符编码简介 1. 1  ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...

  5. python 3字符编码

    python 3字符编码 官方链接:http://legacy.python.org/dev/peps/pep-0263/ 在Python2中默认是ascii编码,Python3是utf-8编码 在p ...

  6. Python 的字符编码

    配置: Python 2.7 + Sublime Text 2 + OS X 10.10 本文意在理清各种编码的关系并以此解决 Python 中的编码问题. 1 编码基本概念 只有先了解字符表.编码字 ...

  7. 转:Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  8. Python常用字符编码(转)

    Python常用字符编码   字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  9. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  10. what's the python之字符编码与文件处理

    用文本编辑器打开一个文件就是把一个文件读入了内存中 ,所以打开文件的操作也是在内存中的,断电即消失,所以若要保存其内容就必须点击保存让其存入硬盘中 python解释器执行py文件的原理 : 第一阶段: ...

随机推荐

  1. PAT甲级——1131 Subway Map (30 分)

    可以转到我的CSDN查看同样的文章https://blog.csdn.net/weixin_44385565/article/details/89003683 1131 Subway Map (30  ...

  2. Tinghua Data Mining 2

    数据预处理 https://www.bilibili.com/video/av23933161/?p=11 http://www.xuetangx.com/courses/course-v1:Tsin ...

  3. Codeforces 1137B(kmp next数组构造)

    为了物尽其用,Next求出最多有哪部分能重复使用,然后重复使用就行了-- const int maxn = 5e5 + 5; char s[maxn], t[maxn]; int cnts0, cnt ...

  4. MyBatis中时间格式的映射问题

    简单地说,就是Java的Date类可以直接映射到Mysql的TIMESTAMP或者是DATETIME(按道理应该是映射成DATE的) 具体的看这两篇博客吧: 1. MySql中TIMESTAMP和DA ...

  5. 18002 Z-Scan 模拟题

    18002 Z-Scan 时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: 不限定 Description Z-Scan is a method ...

  6. jquery.validate自定义验证--成功提示与择要提示

    1. 自定义验证--成功提示 1) 添加选项 errorClass: "unchecked", validClass: "checked", errorElem ...

  7. jasmine+karma 自动化单元测试

    测试的必须性 相信大家都知道测试的必要性,测试先行的概念.不过,写了这么多年的代码,除了之前用java的时候写过一些测试用例,还真的很少写过前端的测试用例,或者做一些自动化测试.感觉做单元测试还是很有 ...

  8. maven创建springMVC项目(一)

    1.Eclipse配置 添加maven集成安装包:路径是maven下载安装的解压位置,如果不知道如何下载安装请点击这里看我的另一篇安装文章,这里不多说 这里需要注意的是: a.settings.xml ...

  9. 2、替换空格------------>剑指offer系列

    题目 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 代码 1.直接用空格将字符串切割成 ...

  10. hihocoder1032 最长回文子串

    思路: manacher模板. 实现: #include <iostream> #include <cstring> using namespace std; ]; strin ...