第2章 Python基础-字符编码&数据类型 综合 练习题
2018-03-12 17:35
691 查看
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 = ["手机", "电脑", '鼠标垫', '游艇']
允许用户添加商品
用户输入序号显示内容
print("商品列表,用户输入序号,显示用户选中的商品".center(25,'-')) li = ["手机", "电脑", '鼠标垫', '游艇'] for i,num in enumerate(li,1): print(i,num) # 添加商品 choice = input("y=yes,n=no] 是否添加商品:".rjust(20,'-')) if choice == "y" or choice == "Y": good = input("需要添加的商品".rjust(20,'-')) li.append(good) for i,num in enumerate(li,1): print(i,num) elif choice =='n' or choice == "N": pass else: print("请输入正确的选项") choice_Item = input("[q=quit] 查看序号对应商品,按q退出!") if choice_Item.isdigit() and int(choice_Item) <= len(li): print(li[int(choice_Item)-1])
4、用户交互显示类似省市县N级联动的选择
允许用户增加内容
允许用户选择查看某一个级别内容
china = { '北京':{ '海淀':{}, '朝阳':{}, '东城':{} }, '湖北':{ '武汉':{}, '荆门':{}, '宜昌':{} } } current_layer = china # 当前层 layers = [] tag = True while tag: # 一级菜单 for k in current_layer: print(k) choice = input(">:").strip() # 二级菜单 if choice in current_layer: # 进入下一级菜单,保存当前菜单 layers.append(current_layer) # 二级菜单赋给当前层 current_layer = current_layer[choice] elif choice == "back": if len(layers) != 0: # pop删除列表最后一个元素,并返回删除后最后一个元素 current_layer = layers.pop() else: print("已经是最顶层目录!") elif choice == "add": add_node = input("在当前目录下添加节点:") current_layer[add_node] = {} elif choice == "exit": tag = False print("good bye!") else: 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基础-字符编码&数据类型 字符编码&字符串 练习题
- 第2章 Python基础-字符编码&数据类型 列表&元祖 练习题
- 第2章 Python基础-字符编码&数据类型 购物车&多级菜单 作业
- 第2章 Python基础语法 -- 数据类型
- 第2章python基础 数据类型与文件操作
- Python【基础:数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set】注意事项(与java,c比较)
- Python基础(二)之Python变量和数据类型
- python基础-基本数据类型总结_整型(int)_字符型(str)_day3
- Python基础入门-数据类型
- 王亟亟的Python学习之路(三)-基础语法以及基本数据类型
- Python基础:数据类型
- Python--前端基础之JavaScript(JS的引入方式,JS的变量、常量和标识符,JS的数据类型,运算符,流程控制,JavaScript的对象)
- Python基础1语言介绍+数据类型+print语句
- python基础学习第四课,条件判断语句,数据类型转换
- Python基础入门之变量和数据类型一
- python基础----数据类型二
- python基础——数据类型
- Python基础 -- 01 Python的基础语法(数据类型、输入输出、运算符、数据类型转换、判断语句、循环语句)
- python基础数据类型浅析