第2章 Python基础-字符编码&数据类型 综合 练习题
1、转换
将字符串s = "alex"转换成列表
s = "alex"
s_list = list(s)
print(s_list)
将字符串s = "alex"转换成元祖
s = "alex"
s_tuple = tuple(s)
print(s_tuple)
将列表li = ["alex", "seven"]转换成元组
li = ["alex", "seven"]
li_tuple = tuple(li)
print(li_tuple)
将元祖tu = ('Alex', "seven")转换成列表
tu = ('Alex', "seven")
tu_list = list(tu)
print(tu_list)
将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
li = ["alex", "seven"]
li_dic = {}
for k,v in enumerate(li,10):
li_dic[k] = v
print(li_dic)
2、元素分类
有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
即:{'k1':大于66的所有值, 'k2':小于66的所有值}
li = [11,22,33,44,55,66,77,88,99,90]
li1 = []
li2 = []
for i in li :
if i < 66:
li1.append(i)
elif i > 66:
li2.append(i)
else:
pass
dic = {"k1": li1,"k2": li2}
print(dic)
3、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
允许用户添加商品
用户输入序号显示内容
#!/usr/bin/env python
# -*- coding:utf-8 -*- li = ["手机", "电脑", '鼠标垫', '游艇'] while True:
print("商品信息".center(28, "-"))
for index,goods in enumerate(li,1):
print("%s. %s" % (index, goods))
add_choice = input("\n是否添加商品(yes/no):")
if add_choice == "yes" or add_choice == "y":
add_goods = input("\n请输入需要添加的商品:")
li.append(add_goods)
elif add_choice == "no" or add_choice == "n":
break
else:
print("\n输入错误,请重新输入\n")
continue
while True:
goods_choice = input("\n请输入需要查看的商品序号,输入非数字退出本程序:")
if goods_choice.isdigit():
goods_choice = int(goods_choice)
if goods_choice >= 1 and goods_choice <= len(li):
print("\n",li[goods_choice-1])
else:
print("\n商品序号错误,请重新输入\n")
else:
break
4、用户交互显示类似省市县N级联动的选择
允许用户增加内容
允许用户选择查看某一个级别内容
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 输入省份、城市、县序号 China = {
'河南省': {
'焦作市': ['武陟', '温县', '博爱'],
'郑州市': ['新郑', '荥阳', '中牟'],
'开封市': ['兰考', '尉氏', '杞县'],
},
'广东省': {
'广州市': ['越秀', '荔湾', '番禺'],
'深圳市': ['福田', '罗湖', '龙岗'],
'东莞市': ['莞城', '南城', '东城'],
},
} exit_flag = False
while not exit_flag: # 第1层循环
province_list = [] # 定义一个省份列表
city_list = [] # 定义一个城市列表
print("\33[31;1m---------------------------------\33[1m")
print(" \33[31;1m欢迎您来到中国\33[1m ")
print("\33[31;1m---------------------------------\33[1m")
for index,Province in enumerate(China,1):
print("%s. %s" % (index,Province))
province_list.append(Province) # 添加所有省份到省份列表中
print()
choice_province = input("一.请输入您要前往的省份序号 (输入q退出,输入b返回上级,输入i自定义):")
print()
if choice_province == "q" or choice_province == "Q":
exit_flag = True
elif choice_province == "b" or choice_province == "B":
continue # 跳出第1层循环的剩下语句,继续进行下一次循环(选择省份)
elif choice_province == "i" or choice_province == "I":
print("\33[32;1m自定义信息\33[1m".center(40, "-"))
province = input("省份名称:")
if China.get(province) == None:
China[province] = {} # 增加的省份对应的键值是一个空字典
city = input("城市名称:")
if China[province].get(city) == None:
China[province][city] = [] # 增加的城市对应的键值是一个空列表
county = input("县名称:")
China[province][city].append(county) # 增加的县是列表中的一个元素
print()
print("您的自定义信息已经存储成功,请重新进行选择")
print()
elif choice_province.isdigit():
choice_province = int(choice_province)
if choice_province >= 1 and choice_province <= len(province_list):
while not exit_flag: # 第2层循环
for index,City in enumerate(China[province_list[choice_province-1]],1):
print("%s. %s" % (index,City))
city_list.append(City) # 添加所有城市到城市列表中
print()
choice_city = input("二.请输入您要前往的城市序号 (输入q退出,输入b返回上级):")
print()
if choice_city == "q" or choice_city == "Q":
exit_flag = True
elif choice_city == "b" or choice_city == "B":
break # 跳出整个第2层循环,重新进行第1层循环(选择省份)
elif choice_city.isdigit():
choice_city = int(choice_city)
if choice_city >=1 and choice_city <= len(city_list):
while not exit_flag: # 第3层循环
for index,County in enumerate(China[province_list[choice_province-1]][city_list[choice_city-1]],1):
print("%s. %s" % (index, County))
print()
choice_county = input("三.请输入您要前往的县序号 (输入q退出,输入b返回上级):")
print()
if choice_county == "q" or choice_county == "Q":
exit_flag = True
elif choice_county == "b" or choice_county == "b":
break # 跳出整个第3层循环,重新进行第2层循环(选择城市)
elif choice_county.isdigit():
choice_county = int(choice_county)
county_list = China[province_list[choice_province - 1]][city_list[choice_city - 1]] # 县列表
if choice_county >= 1 and choice_county <= len(county_list):
print("---------------------------------")
print("您现在的位置是:", province_list[choice_province-1],city_list[choice_city-1],county_list[choice_county-1])
print("---------------------------------")
exit_flag = True
else:
print("您输入的县序号不存在")
print()
else:
print("您输入的县序号不存在")
print()
continue
else:
print("您输入的城市序号不存在")
print()
continue
else:
print("您输入的城市序号不存在")
print()
continue
else:
print("您输入的省份序号不存在")
print()
else:
print("您输入的省份序号不存在")
print()
continue
5、列举布尔值是False的所有值
bool(0) bool(None) bool("") bool(()) bool([]) bool({})
6、有两个列表
l1 = [11,22,33]
l2 = [22,33,44]
获取内容相同的元素列表
#!/usr/bin/env python
# -*- coding:utf-8 -*- l1 = [11,22,33]
l2 = [22,33,44] s1 = set(l1)
s2 = set(l2)
s3 = s1 & s2 l3 = list(s3) print(l3)
获取l1中有,l2中没有的元素列表
#!/usr/bin/env python
# -*- coding:utf-8 -*- l1 = [11,22,33]
l2 = [22,33,44] s1 = set(l1)
s2 = set(l2)
s3 = s1 - s2 l3 = list(s3) print(l3)
获取l2中有,l3中没有的元素列表
#!/usr/bin/env python
# -*- coding:utf-8 -*- l1 = [11,22,33]
l2 = [22,33,44] s1 = set(l1)
s2 = set(l2)
s3 = s2 - s1 l3 = list(s3) print(l3)
获取l1和l2中内容都不同的元素
#!/usr/bin/env python
# -*- coding:utf-8 -*- l1 = [11,22,33]
l2 = [22,33,44] s1 = set(l1)
s2 = set(l2)
s3 = s2 ^ s1 l3 = list(s3) print(l3)
7、利用For循环和range输出
For循环从小到大输出1 - 100
#!/usr/bin/env python
# -*- coding:utf-8 -*- for i in range(1,101):
print(i)
For循环从大到小输出100 - 1
#!/usr/bin/env python
# -*- coding:utf-8 -*- for i in range(100,0,-1):
print(i)
While循环从小到大输出1 - 100
#!/usr/bin/env python
# -*- coding:utf-8 -*- n = 1
while n <= 100:
print(n)
n += 1
While循环从大到小输出100 - 1
#!/usr/bin/env python
# -*- coding:utf-8 -*- n = 100
while n >= 1:
print(n)
n -= 1
8、利用for循环和range输出9 * 9乘法表
#!/usr/bin/env python
# -*- coding:utf-8 -*- for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d" % (j,i,i*j),end=" ") # 每次输出不换行(默认print会换行),第二位数字是固定的,所以最外层循环的i代表第二位
print (" ") # 当j(第一位数字)遍历一遍时换行
9、判断一个数是否为素数。(编程题)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 素数又称为质数,它指的是只能被1和它本身整除的整数。其中,1不是素数,任何时候都不用考虑1。 while True:
flag = True # 设置一个标志位,flag = True代表是素数,flag = Flase代表非素数
n = int(input("请输入一个数字:"))
if n < 2: # 0、1以及负数都不是素数
flag = False
else:
for i in range(2,n): # 除以比它小的所有数(不包括1和它本身),看它是否还有其他因数
# print(i)
if n % i == 0:
# print("%d能整除%d" %(n,i))
flag = False # 出现一次余数为0就代表可以除尽,即代表这个数为素数,就可以设置flag = False
break # 只要第一次出现flag = False,就不用继续往下循环,直接退出整个循环(第二层)
if flag == True:
print("%d,是素数" %(n))
else:
print("%d,非素数" %(n))
10.输出100以内的所有素数。(编程题)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 素数又称为质数,它指的是只能被1和它本身整除的整数。其中,1不是素数,任何时候都不用考虑1。 L = [] # 定义一个初始的素数列表
for n in range(2,101): # 循环100以内的素数n,从2开始,0、1不是素数
flag = True # 设置一个标志位,flag = True代表是素数,flag = Flase代表不是素数
for i in range(2,n): # 除以比它小的所有数(不包括1和它本身),看它是否还有其他因数
if n % i == 0:
flag = False # 出现一次余数为0就代表可以除尽,即代表这个数为素数,就可以设置flag = False
break # 只要第一次出现flag = False,就不用继续往下循环,直接退出整个循环(第二层)
if flag == True:
L.append(n) # 当flag = True时代表n为素数,追加到素数列表中
print("100以内的所有素数:",L)
11、求100以内的素数和。(编程题)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 素数又称为质数,它指的是只能被1和它本身整除的整数。其中,1不是素数,任何时候都不用考虑1。 s = 0 # 设置一个素数初始和为0
for n in range(2,101): # 循环100以内的素数n,从2开始,0、1不是素数
flag = True # 设置一个标志位,flag = True代表是素数,flag = Flase代表不是素数
for i in range(2,n): # 除以比它小的所有数(不包括1和它本身),看它是否还有其他因数
if n % i == 0:
flag = False # 出现一次余数为0就代表可以除尽,即代表这个数为素数,就可以设置flag = False
break # 只要第一次出现flag = False,就不用继续往下循环,直接退出整个循环(第二层)
if flag == True:
s += n # 当flag = True时代表n为素数,此时和之前的素数之和相加得到最新的素数之和
print("100以内的素数和为:",s)
12、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)
li = [1,3,2,7,6,23,41,24,33,85,56] for i in range(len(li)-1): # i的范围0-9
if li[i] > li[i+1]: # 相邻的两个数比较
li[i],li[i+1] = li[i+1],li[i]
print(li)
li = [1,3,2,7,6,23,41,24,33,85,56] for i in range(len(li)-1): # i的范围0-9
for j in range(i+1,len(li)): # j的范围1-10
if li[i] > li[j]: # 相邻的两个数比较
li[i],li[j] = li[j],li[i]
print(li)
第2章 Python基础-字符编码&数据类型 综合 练习题的更多相关文章
- 第2章 Python基础-字符编码&数据类型 字典 练习题
1.写代码,有如下字典,按照要求实现每一个功能,dic = {'k1':'v1','k2':'v2','k3':[11,22,33]} 请循环输出所有的 key dic = {'k1':'v1','k ...
- 第2章 Python基础-字符编码&数据类型 字符编码&字符串 练习题
1.简述位.字节的关系 位(bit)是计算机中最小的表示单元,数据传输是以“位”为单位的,1bit缩写为1b 字节(Byte)是计算机中最小的存储单位,1Byte缩写为1B 8bit = 1Byte ...
- 第2章 Python基础-字符编码&数据类型 列表&元祖 练习题
1.创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素 names = ["old_driver&q ...
- 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业
作业 一.三级菜单 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...
- Python基础-字符编码与转码
***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...
- Python基础(字符编码与文件处理)
一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内 ...
- Python学习-字符编码, 数据类型
本篇主要内容: 字符编码 Python中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...
- python基础-----字符编码
1.ASCII ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...
- python基础--字符编码以及文件操作
字符编码: 1.运行程序的三个核心硬件:cpu.内存.硬盘 任何一个程序要是想要运算,肯定是先从硬盘加载到当前的内存中,然后cpu根据指定的指令去执行操作 2.python解释器运行一个py文件的步骤 ...
随机推荐
- Ado.Net,关于DataSet和DataTable
DataSet和DataTable的 区别与联系 1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中. ●注意如下 ...
- __builtin_constant_p
int __builtin_constant_p (exp); You can use the built-in function __builtin_constant_p to determine ...
- WIP 001 - design the applicant screen
In this item, you only need to design the screen
- sublime text 3中文乱码问题解决的方法
一.首先要确保本机sublime已经有安装包管理器,假设没有.安装方法:http://blog.chinaunix.net/uid-12014716-id-4269991.html 文中的第一步:安装 ...
- nano在CentOS上的安装和使用
安装: yum -y install nano 打开新建:nano 路径+文件名 查看用:cat path/filename如果改文件存在,上面的命令将打开这个文件:如果文件不存在则将会创建一个新文件 ...
- eclipse 使用tomcat运行JavaWeb项目,文件修改后为何不用重启tomcat? (运行web项目的4种方式)探究
1.情景说明 在eclipse中,为什么Java文件修改后,重启tomcat class文件才能生效? 为什么jsp修改后,不需重启tomcat就能立即生效? 为什么静 ...
- 用Beautiful Soup解析html源码
#xiaodeng #python3 #用Beautiful Soup解析html源码 html_doc = """ <html> <head> ...
- 获取spring的ApplicationContext几种方式【转】
转自:http://blog.sina.com.cn/s/blog_9c7ba64d0101evar.html Java类获取spring 容器的bean 常用的5种获取spring 中bean的方式 ...
- 开源通用型渲染工具-SwiftShader--OpenGL的替代者
SwiftShader 是一款用于在 CPU 上进行高性能图形渲染的软件库.Google 已经在很多产品中使用该内容库,包括 Chrome.Android 开发工具和云服务.Swiftshader 从 ...
- 读书笔记--<精益和敏捷开发大型项目应用指南>
[摘要] 3月份的时候,根据教练和其他多为项目经理的推荐,开始阅读这本书:本书共三大部分.12个章节,第一部分:思考工具,第二部分:组织工具:第三部分:杂记:全书相当于对精益思想和敏捷团队组织.Scr ...