python基础_字典_列表_元组考试_day4

时间:2023-03-08 17:31:58
python基础_字典_列表_元组考试_day4

1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']

 li=['alex','eric','rain']
v="_".join(li)
print(v)

执行结果:

 alex_eric_rain

2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
li=["alec","aric","Alex","Tony","rain"]
tu=("alec","aric","Alex","Tony","rain")
dic={'k1':"alex",'k2':'aric',"k3":"Alex","k4":"Tony"}

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: nulige li = ["alec", "aric", "Alex", "Tony", "rain"]
tu = ("alec", "aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': 'aric', "k3": "Alex", "k4": "Tony"} list1 = list(tu)
list2 = list(dic.values())
newlist = li + list1 + list2
for i in newlist:
ret = i.strip() #i.strip():删除字符串当前行首尾的的空格
if (ret.startswith('a') or ret.startswith('A')) and ret.endswith('c'): #startswith查看是否已什么开始,endswith查看是否已什么结尾
 print(ret)

执行结果:

 alec
aric
alec
aric
aric

3、写代码,有如下列表,按照要求实现每一个功能

li=['alex','eric','rain']

a.计算列表长度并输出

 li = ['alex', 'eric', 'rain']
v = len(li)
print(v)

执行结果:

 3

b.列表中追加元素“seven”,并输出添加后的列表

 li = ['alex', 'eric', 'rain']
li.append(str("seven"))
print(li)

执行结果:

 ['alex', 'eric', 'rain', 'seven']

c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表

 li = ['alex', 'eric', 'rain']
li.insert(1,"Tony")
print(li)

执行结果:

 ['alex', 'Tony', 'eric', 'rain']

d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表

 li = ['alex', 'eric', 'rain']
li[1] = "Kelly"
print(li)

执行结果:

 ['alex', 'Kelly', 'rain']

e.请删除列表中的元素“eric”,并输出修改后的列表

 li = ['alex', 'eric', 'rain']
li.remove("eric")
print(li)

执行结果:

 ['alex', 'rain']

元素的值和删除元素后的列表 执

 li = ['alex', 'eric', 'rain']
del li[1]
print(li)
n1 = li.pop(1)
print(n1)

执行结果:

 ['alex', 'rain']
rain

g.请删除列表中的第3个元素,并输出删除元素后的列表

 li = ['alex', 'eric', 'rain']
li.pop(2)
print(li)

执行结果:

 ['alex', 'eric']

h.请删除列表中的第2至4个元素,并输出删除元素后的列表

 li = ['alex', 'eric', 'rain', 'sic']
del li[1:4]
print(li)

执行结果:

 ['alex']

i.请将列表所有的元素反转,并输出反转后的列表

 li = ['alex', 'eric', 'rain']
li.reverse()
print(li)

执行结果:

 ['rain', 'eric', 'alex']

j.请使用for、len、range输出列表的索引

 li = ['alex', 'eric', 'rain']
for i in range(len(li)):
print(i)

执行结果:

 0
1
2

k.请使用enumrate输出列表元素和序号(序号从100开始)

 li = ['alex', 'eric', 'rain']
for k,v in enumerate(li,100):
print(k,v)

执行结果:

 100 alex
101 eric
102 rain

l.请使用for循环输出列表的所有元素

 li = ['alex', 'eric', 'rain']
for ltem in li:
print(ltem)

执行结果:

 alex
eric
rain

4、写代码,有如下列表,请按照功能要求实现每一个功能

li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]

a.请根据索引输出“Kelly”

 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
print(li[2][1][1])

执行结果:

 kelly

b.请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...

 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
index = li[2].index("all")
li[2][index] = "ALL"
print(li)

执行结果:

 ['hello', 'seven', ['mon', ['h', 'kelly'], 'ALL'], 123, 446]

5、写代码,有如下元组,按照要求实现每一个功能

tu=('alex','eric','rain')

a.计算元组长度并输出

 tu = ('alex', 'eric', 'rain')
n1 = len(tu)
print(n1)

执行结果:

 3

b.获取元组的第2个元素,并输出

 tu = ('alex', 'eric', 'rain')
v = tu[1]
print(v)

执行结果:

 eric

c.获取元组的第1-­‐2个元素,并输出

方法一:

 tu = ('alex', 'eric', 'rain')
v = tu[:2]
print(v)

执行结果:

 ('alex', 'eric')

方法二:

 tu = ('alex', 'eric', 'rain')
n1 = tu[1]
n2 = tu[2]
print(n1 + " " + n2)

执行结果:

 eric rain

d.请使用for输出元组的元素

 tu = ('alex', 'eric', 'rain')
for i in tu:
print(i)

执行结果:

 alex
eric
rain

e、请删除列表中的元素"eric",并输出修改后的列表

 li = ['alex', 'eric', 'rain']
li.remove("eric")
print(li)

执行结果:

 ['alex', 'rain']

f.请使用for、len、range输出元组的索引

 tu = ('alex', 'eric', 'rain')
for i in range(len(tu)):
print(i)

执行结果:

 alex
eric
rain

g.请使用enumrate输出元祖元素和序号(序号从10开始)

 tu = ('alex', 'eric', 'rain')
for k,v in enumerate(tu,10):
print(k,v)

执行结果:

 10 alex
11 eric
12 rain

6、有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])

a.讲述元祖的特性
答:元组具有列表的全部特性,不同的是,元组的元素不能修改

b.请问tu变量中的第一个元素“alex”是否可被修改?
答:不能

c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

答:列表 ,可以

 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
tu[1][2]["k2"].append("Seven")
print(tu)

执行结果:

 ('alex', [11, 22, {'k3': (11, 22, 33), 'k1': 'v1', 'k2': ['age', 'name', 'Seven']}, 44])

d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

答: 元组,不能

 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
tu[1][2]["k3"].append("Seven")
print(tu)

执行结果:

 Traceback (most recent call last):
File "D:/python/job4.py", line 154, in <module>
tu[1][2]["k3"].append("Seven")
AttributeError: 'tuple' object has no attribute 'append' #元组不能被修改

7、字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]}

a.请循环输出所有的key

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
for ltem in dic:
print(ltem)

执行结果:

 k1
k2
k3

b.请循环输出所有的value

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
for item in dic.values():
print(item)

执行结果:

 v2
v1
[11, 22, 33]

c.请循环输出所有的key和value

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
for k,v in dic.items():
print(k,v)

执行结果:

 k3 [11, 22, 33]
k2 v2
k1 v1

d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
dic["k4"] = "v4"
print(dic)

执行结果:

 {'k4': 'v4', 'k3': [11, 22, 33], 'k1': 'v1', 'k2': 'v2'}

e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
dic["k1"] = "alex"
print(dic)

执行结果:

 {'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'alex'}

f.请在k3对应的值中追加一个元素44,输出修改后的字典

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
dic["k3"].append(44)
print(dic)

执行结果:

 {'k2': 'v2', 'k1': 'v1', 'k3': [11, 22, 33, 44]}

g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典

 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
dic["k3"].insert(0,18)
print(dic)

执行结果:

 {'k2': 'v2', 'k3': [18, 11, 22, 33], 'k1': 'v1'}

8、转换

a.将字符串s="alex"转换成列表

 s = "alex"
n1 = list(s)
print(n1)

执行结果:

 ['a', 'l', 'e', 'x']

b.将字符串s="alex"转换成元祖

 s = "alex"
n1 = tuple(s)
print(n1)

执行结果:

 ['a', 'l', 'e', 'x']

b.将列表li=["alex","seven"]转换成元组

 li = ["alex","seven"]
n1 = tuple(li)
print(n1)

执行结果:

 ('alex', 'seven')

c.将元祖tu=('Alex',"seven")转换成列表

 tu = ('Alex',"seven")
n1 = list(tu)
print(n1)

执行结果:

 ('alex', 'seven')

d.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增

 li = ["alex","seven"]
n1 = {}
for k,v in enumerate(li,10):
n1[k] = v
print(n1)

执行结果:

 {10: 'alex'}
{10: 'alex', 11: 'seven'}

9、元素分类

有如下值集合[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]
li.sort() #排序
z = li.index(66)
l = len(li)
dic = {"k1": li[z + 1:l], "k2": li[0:z]}
print(dic)

执行结果:

 {'k1': [77, 88, 90, 99], 'k2': [11, 22, 33, 44, 55]}

法二:

 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
li.sort()
lo = []
lp = []
for i in li:
if i < 66:
lo.append(i)
elif i > 66:
lp.append(i)
dic = {"k1": lo, "k2": lp}
print(dic)

执行结果:

 {'k1': [11, 22, 33, 44, 55], 'k2': [77, 88, 90, 99]}

10、输出商品列表,用户输入序号,显示用户选中的商品
商品li=["手机","电脑",'鼠标垫','游艇']

a.允许用户添加商品

b.用户输入序号显示内容

 print("商品列表信息,用户输入序号,显示用户选中的商品")
li = ["手机", "电脑", '鼠标垫', '游艇']
for i, v in enumerate(li, 1):
print(i, v)
x = input("是否添加商品?")
if x == "y" or x == "Y" or x == "yes":
t = input("请添加商品:")
li.append(t)
for i, v in enumerate(li, 1):
print(i, v)
s = input("是否查找商品?")
if s == "y" or s == "Y" or s == "yes":
y = int(input("请输入查找的序号"))
print(li[y -1]) # -1 是取下标,默认是从0开始的,-1就是从1开始

执行结果:

 商品列表信息,用户输入序号,显示用户选中的商品
1 手机
2 电脑
3 鼠标垫
4 游艇
是否添加商品?y
请添加商品:锅
1 手机
2 电脑
3 鼠标垫
4 游艇
5 锅
是否查找商品?y
请输入查找的序号1
手机

11、用户交互显示类似省市县N级联动的选择

a.允许用户增加内容

b.允许用户选择查看某一个级别内容

 #!/usr/bin/env python
# -*- coding=utf-8 -*-
# Created on: 2016年11月29日
# @author: 郑建文
# Email: 574601624@qq.com
# Version: 1.0 city = {"北京":{"朝阳":["大望路","国贸"],
"昌平":["沙河","昌平"]},
"河北":{"张家口":["沙城","宣化"],
"石家庄":["某某路","某某街"]}
}
go = True
while go:
cc = []
dq = []
print("\33[31;1m一级列表\33[1m".center(40,"="))
for i,v in enumerate(city,1):
print(i,v)
cc.append(v)
print("\33[35;1m插入数据 i 退出按Q\33[1m")
u_c1 = str(input(">>>"))
if u_c1.isdigit():#进二级之前判断
u_c1 = int(u_c1)
if u_c1 >0 and u_c1 <=len(cc):
while go:
print("\33[32;1m二级列表\33[1m".center(40, "="))
for i1,v1 in enumerate(city[cc[u_c1-1]],1):
print(i1,v1)
dq.append(v1)
print("\33[35;1m退出按Q 返回 B\33[1m")
u_c2 = input(">>>")
if u_c2.isdigit():#进三级之前判断
u_c2 = int(u_c2)
if u_c2 >0 and u_c2<=len(dq):
while go:
print("\33[32;1m三级列表\33[1m".center(40, "="))
for s in city[cc[u_c1-1]][dq[u_c2-1]]:
print(s)
print("\33[35;1m退出按Q 返回 B\33[1m")
u_c3 = input(">>>")
if u_c3 == "q" or u_c3 == "Q":
go = False
break
if u_c3 == "b" or u_c3 =="B":
del dq[:]
break
else:
print("\33[31;1m输入不正确\33[1m")
else:
print("\33[31;1m输入超出范围!\33[1m")
elif u_c2 == "q" or u_c2 == "Q":
go = False
break
elif u_c2 == "b" or u_c2 == "B":
del cc[:]
del dq[:]
break
else:
print("\33[31;1m输入格式不对!\33[1m")
elif u_c1.isalpha():
if u_c1 == "q" or u_c1 == "Q":
break
elif u_c1 == "i" or u_c1 == "I":
print("\33[32;1m添加信息\33[1m".center(40,"="))
ct_name = input("省:")
if ct_name == "Q" or ct_name == "q":
break
else:
if city.get(ct_name,0) == 0:
city[ct_name] = {}
dq_name = input("市:")
if dq_name == "Q" or dq_name == "q":
break
else:
if city[ct_name].get(dq_name,0) == 0:
city[ct_name][dq_name]=[]
while True:
print("\33[31;1m循环添加,退出请按Q!\33[1m")
s = input("县:")
if s == "q" or s == "Q":
break
else:
city[ct_name][dq_name].append(s)
else:
print("\33[31;1m输入超出范围!\33[1m")
else:
print("\33[31;1m输入格式不对!\33[1m")

12、列举布尔值是False的所有值

 None ""  () []  {} 0 

13︎、有两个列表
l1=[11,22,33]
l2=[22,33,44]

a.获取内容相同的元素列表

 n1 = [11,22,33]
n2 = [22,33,44]
for i in n1:
if i in n2:
print(i)

执行结果:

 22
33

b.获取l1中有,l2中没有的元素列表

 l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i in l1:
if i not in l2:
print(i)

执行结果:

 44
11

c.获取l2中有,l1中没有的元素列表

 l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i in l2:
if i not in l1:
print(i)

执行结果:

 44

d.获取l1和l2中内容都不同的元素

 l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i in l2:
if i not in l1:
print(i)
for v in l1:
if v not in l2:
print(v)

执行结果:

 44
11

14、利用For循环和range输出
a.For循环从大到小输出1-­100

 for i in range(100,0,-1):
print(i)

b.For循环从小到到输出100-­1

 for i in range(1,101):
print(i)

c.While循环从大到小输出1-­100

 while True:
a = 100
for i in range(100):
print(a-i)
break

d.While循环从小到到输出100-­1

 while True:
for i in range(100):
print(i+1)
break

15、购物车
功能要求:

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods=[
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},
]

代码如下:

方法一:

 shop_cart = []
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":988},
]
while True:
salary = input("请输入用户余额[quit]:")
if salary.isdigit():
salary = int(salary)
break
elif salary == "quit":
exit("不想购买")
else:
print("please the enter number")
while True:
print("shop list".center(50, '*'))
for index,i in enumerate(goods):
print(index,i)
choose_number = input("请输入购买商品编号[quit]:")
if choose_number.isdigit():
choose_number = int(choose_number)
product_list = []
if 0 <= choose_number <= len(goods):
product_list.append(goods[choose_number])
if salary >= product_list[0]["price"]:
shop_cart.append(goods[choose_number])
salary -= product_list[0]['price']
print("当前购买的商品",product_list,"当前用户余额\033[1;31m{salary}\033[0m".format(salary=salary))
else:
print("余额不足")
else:
print("无效的商品编号")
elif choose_number.lower() == 'quit': print("购买的商品".center(50,"*"))
for y in shop_cart:
print(y)
exit()
else:
print("无效的输入")

执行结果:

 请输入用户余额[quit]:2000
********************shop list*********************
0 {'name': '电脑', 'price': 1999}
1 {'name': '鼠标', 'price': 10}
2 {'name': '游艇', 'price': 20}
3 {'name': '美女', 'price': 988}
请输入购买商品编号[quit]:1
当前购买的商品 [{'name': '鼠标', 'price': 10}] 当前用户余额1990
********************shop list*********************
0 {'name': '电脑', 'price': 1999}
1 {'name': '鼠标', 'price': 10}
2 {'name': '游艇', 'price': 20}
3 {'name': '美女', 'price': 988}
请输入购买商品编号[quit]:2
当前购买的商品 [{'name': '游艇', 'price': 20}] 当前用户余额1970
********************shop list*********************
0 {'name': '电脑', 'price': 1999}
1 {'name': '鼠标', 'price': 10}
2 {'name': '游艇', 'price': 20}
3 {'name': '美女', 'price': 988}
请输入购买商品编号[quit]:3
当前购买的商品 [{'name': '美女', 'price': 988}] 当前用户余额982
********************shop list*********************
0 {'name': '电脑', 'price': 1999}
1 {'name': '鼠标', 'price': 10}
2 {'name': '游艇', 'price': 20}
3 {'name': '美女', 'price': 988}
请输入购买商品编号[quit]:0
余额不足
********************shop list*********************
0 {'name': '电脑', 'price': 1999}
1 {'name': '鼠标', 'price': 10}
2 {'name': '游艇', 'price': 20}
3 {'name': '美女', 'price': 988}
请输入购买商品编号[quit]:quit
**********************购买的商品***********************
{'name': '鼠标', 'price': 10}
{'name': '游艇', 'price': 20}
{'name': '美女', 'price': 988} Process finished with exit code 0

方法二:(郑建文版本)

 #!/usr/bin/env python
# -*- coding=utf-8 -*-
# Created on: 2016年11月29日
# @author: 郑建文
# Email: 574601624@qq.com
# Version: 1.0
'''
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,
加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 本程序功能:可以添加购买商品,一起结算,可以查看已结算和没结算的,商品重复的是有数量的
'''
goods = [
{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
while True:
print("\33[31;1m+++++++输入q退出++++++++\33[1m")
money = str(input("\33[32;1m请输入初始余额:\33[1m"))
if money.isdigit():
money = int(money)
go = True
break
else:
if money.lower() == "q":
go = False # 用于控制下面程序运行
print("再见!")
break
else:
print("输入格式错误") buy_car = [] # 购物车
while go:
#print(buy_car)
print("\33[35;1m购物商城\33[1m".center(50, "="))
print("序号|名称|单价")
for i, v in enumerate(goods, 1):
print(i, v["name"], v["price"])
print("q.退出 o.结算 k.购物车")
buy = str(input(">>>"))
if buy.isdigit():#购物
buy = int(buy)
if buy > 0 and buy < len(goods):#是否存在
for s in buy_car:
if s["name"] == goods[buy-1]["name"] and s['js'] == 0 :#如果存在
tem = goods[buy-1]
tem["js"] = 0 #结算标示
tem["sl"] += 1 #数量
print("\33[32;1m添加商品 %s 成功!\33[1m" % (goods[buy - 1]["name"]))
buy = 0
break
if buy:#不存在
tem = goods[buy - 1]
tem["js"] = 0 # 结算标示
tem["sl"] = 1 # 数量
buy_car.append(tem)
print("\33[32;1m添加商品 %s 成功!\33[1m" % (goods[buy - 1]["name"])) else:
print("\33[31;1m没有此商品\33[1m")
else:
if buy.lower() == "q": # 退出
break
elif buy.lower() == "o": # 结算
all_price = 0
for i in buy_car:#计算金额
if i["js"] == 0:
ret = i['price'] * i['sl']
all_price += ret
if all_price <= money and all_price >0:#结算
for i in buy_car:
i['js'] = 1
money -= all_price
print("结算成功,共消费:%d元,余额为:%d元"%(all_price,money))
elif all_price == 0:#无购物
print("\33[31;1m请先购物!\33[1m")
else:#金额不足
print("\33[31余额不足,请删除一些商品\33[1m")
elif buy.lower() == "k":
u_js = input("1.结算完毕 2.未结算 \n>>>")
if u_js == "":#已经结算的
print("\33[32;1m已结算购物车\33[1m".center(50,"="))
print("序号|名称|数量|单价")
for i,v in enumerate(buy_car,1):
if v["js"] == 1:
print(i,v['name'],v['sl'],v['price'])
elif u_js == "":#没有结算的,可以删除
if len(buy_car) > 0:
while go:
for i, v in enumerate(buy_car,1):
if v["js"] == 0:
print(i, v["name"], v["price"],v['sl'])
u_d = input("\33[31;1m选序号删除,退出q 返回 b\33[1m \n>>>")
if u_d.isdigit():
u_d = int(u_d)
if u_d > 0 and u_d <= len(buy_car):
u_sl = input("请输入数量:")
if u_sl.isdigit():
u_sl = int(u_sl)
if u_sl < buy_car[u_d]['sl']:
buy_car[u_d]['sl'] -= u_sl
print("\33[32;1m删除商品成功!\33[1m")
elif u_sl == buy_car[u_d]['sl']:
del buy_car[u_d-1]
print("\33[32;1m删除商品成功!\33[1m")
else:
print("超出范围或者输入不正确") else:
if u_d.lower() == "q":
go = False
print("再见")
if u_d.lower() == "b":
break
else:
print("\33[31;1m无商品或还没有结算,请先购买!\33[1m")
else:
print("\33[31;1m输入格式不对!\33[1m")

16、分页显示内容

a.通过for循环创建301条数据,数据类型不限,如:
alex-­‐1alex1@live.compwd1
alex-­‐2alex2@live.compwd2
alex-­‐3alex3@live.compwd3
...

法一:

 for i in range(301):
a = "alex- - %salex%s@live.com pwd%s"%(i+1,i+1,i+1)
print(a)

法二:

 u = []
for i in range(301):
a = "alex{0} alex{0}@live.com pwd{0}".format(i+1)
x = [a]
u = u + x
print(u[0:10])

b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据

注意:
-­‐每页显示10条数据
-­‐用户输入页码是非十进制数字,则提示输入内容格式错误

 while True:
u = []
for i in range(301):
a = "alex{0} alex{0}@live.com pwd{0}".format(i+1)
x = [a]
u = u + x
# print(u[0:10])
s = input("请输入您想查看的页码:")
v3 = s.isnumeric() #检测字符串是否只由数字组成,如果字符串中只包含数字字符,则返回 True,否则返回 False
if v3 == False :
print("输入内容格式错误") elif int(s) < 1 or int(s) > 31:
print("输入页码错误") else:
s = int(s)
a = (s-1)*10
b = s*10
j = (u[a:b])
for g in j:
print(g)
A =input("是否继续查看(y or Y)")
if A =="y" or A =="Y":
continue
else:
break

执行结果:

 请输入您想查看的页码:1
alex1 alex1@live.com pwd1
alex2 alex2@live.com pwd2
alex3 alex3@live.com pwd3
alex4 alex4@live.com pwd4
alex5 alex5@live.com pwd5
alex6 alex6@live.com pwd6
alex7 alex7@live.com pwd7
alex8 alex8@live.com pwd8
alex9 alex9@live.com pwd9
alex10 alex10@live.com pwd10
是否继续查看(y or Y)y
请输入您想查看的页码:2
alex11 alex11@live.com pwd11
alex12 alex12@live.com pwd12
alex13 alex13@live.com pwd13
alex14 alex14@live.com pwd14
alex15 alex15@live.com pwd15
alex16 alex16@live.com pwd16
alex17 alex17@live.com pwd17
alex18 alex18@live.com pwd18
alex19 alex19@live.com pwd19
alex20 alex20@live.com pwd20
是否继续查看(y or Y)

17、有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的两位数?

法一:

 count = 0
for i in range(1, 9):
for x in range(1, 9):
if i != x:
print(i, x,)
count += 1
print(count)

执行结果:

 1 2
1 3
1 4
1 5
1 6
1 7
1 8
2 1
2 3
2 4
2 5
2 6
2 7
2 8
3 1
3 2
3 4
3 5
3 6
3 7
3 8
4 1
4 2
4 3
4 5
4 6
4 7
4 8
5 1
5 2
5 3
5 4
5 6
5 7
5 8
6 1
6 2
6 3
6 4
6 5
6 7
6 8
7 1
7 2
7 3
7 4
7 5
7 6
7 8
8 1
8 2
8 3
8 4
8 5
8 6
8 7
56

方法二:

 li = []
for i in range(1, 9):
for x in range(1, 9):
a = ("{0}{1}".format(i, x,)) #把两个数组合在一起
if a not in li: #判断a是不是在li[]里面
if i != x: #相等就往上,再循环
li.append(a)
print(li)
print(len(li))

方法三:

 count = 0
li = []
for i in range(1, 9):
for x in range(1, 9):
a = ("{0}{1}".format(i, x))
if a not in li:
if i != x:
li = li + [a]
count = count + 1
print(count)
print(li)

17、有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的3位数?

 count = 0
for i in range(1, 9):
for x in range(1, 9):
for y in range(1, 9):
if i != x and x != y and i != y:
print(i, x, y)
count += 1
print(count)

执行结果:

 1 2 3
1 2 4
1 2 5
1 2 6
1 2 7
1 2 8
1 3 2
1 3 4
1 3 5
1 3 6
1 3 7
1 3 8
1 4 2
1 4 3
1 4 5
1 4 6
1 4 7
1 4 8
1 5 2
1 5 3
1 5 4
1 5 6
1 5 7
1 5 8
1 6 2
1 6 3
1 6 4
1 6 5
1 6 7
1 6 8
1 7 2
1 7 3
1 7 4
1 7 5
1 7 6
1 7 8
1 8 2
1 8 3
1 8 4
1 8 5
1 8 6
1 8 7
2 1 3
2 1 4
2 1 5
2 1 6
2 1 7
2 1 8
2 3 1
2 3 4
2 3 5
2 3 6
2 3 7
2 3 8
2 4 1
2 4 3
2 4 5
2 4 6
2 4 7
2 4 8
2 5 1
2 5 3
2 5 4
2 5 6
2 5 7
2 5 8
2 6 1
2 6 3
2 6 4
2 6 5
2 6 7
2 6 8
2 7 1
2 7 3
2 7 4
2 7 5
2 7 6
2 7 8
2 8 1
2 8 3
2 8 4
2 8 5
2 8 6
2 8 7
3 1 2
3 1 4
3 1 5
3 1 6
3 1 7
3 1 8
3 2 1
3 2 4
3 2 5
3 2 6
3 2 7
3 2 8
3 4 1
3 4 2
3 4 5
3 4 6
3 4 7
3 4 8
3 5 1
3 5 2
3 5 4
3 5 6
3 5 7
3 5 8
3 6 1
3 6 2
3 6 4
3 6 5
3 6 7
3 6 8
3 7 1
3 7 2
3 7 4
3 7 5
3 7 6
3 7 8
3 8 1
3 8 2
3 8 4
3 8 5
3 8 6
3 8 7
4 1 2
4 1 3
4 1 5
4 1 6
4 1 7
4 1 8
4 2 1
4 2 3
4 2 5
4 2 6
4 2 7
4 2 8
4 3 1
4 3 2
4 3 5
4 3 6
4 3 7
4 3 8
4 5 1
4 5 2
4 5 3
4 5 6
4 5 7
4 5 8
4 6 1
4 6 2
4 6 3
4 6 5
4 6 7
4 6 8
4 7 1
4 7 2
4 7 3
4 7 5
4 7 6
4 7 8
4 8 1
4 8 2
4 8 3
4 8 5
4 8 6
4 8 7
5 1 2
5 1 3
5 1 4
5 1 6
5 1 7
5 1 8
5 2 1
5 2 3
5 2 4
5 2 6
5 2 7
5 2 8
5 3 1
5 3 2
5 3 4
5 3 6
5 3 7
5 3 8
5 4 1
5 4 2
5 4 3
5 4 6
5 4 7
5 4 8
5 6 1
5 6 2
5 6 3
5 6 4
5 6 7
5 6 8
5 7 1
5 7 2
5 7 3
5 7 4
5 7 6
5 7 8
5 8 1
5 8 2
5 8 3
5 8 4
5 8 6
5 8 7
6 1 2
6 1 3
6 1 4
6 1 5
6 1 7
6 1 8
6 2 1
6 2 3
6 2 4
6 2 5
6 2 7
6 2 8
6 3 1
6 3 2
6 3 4
6 3 5
6 3 7
6 3 8
6 4 1
6 4 2
6 4 3
6 4 5
6 4 7
6 4 8
6 5 1
6 5 2
6 5 3
6 5 4
6 5 7
6 5 8
6 7 1
6 7 2
6 7 3
6 7 4
6 7 5
6 7 8
6 8 1
6 8 2
6 8 3
6 8 4
6 8 5
6 8 7
7 1 2
7 1 3
7 1 4
7 1 5
7 1 6
7 1 8
7 2 1
7 2 3
7 2 4
7 2 5
7 2 6
7 2 8
7 3 1
7 3 2
7 3 4
7 3 5
7 3 6
7 3 8
7 4 1
7 4 2
7 4 3
7 4 5
7 4 6
7 4 8
7 5 1
7 5 2
7 5 3
7 5 4
7 5 6
7 5 8
7 6 1
7 6 2
7 6 3
7 6 4
7 6 5
7 6 8
7 8 1
7 8 2
7 8 3
7 8 4
7 8 5
7 8 6
8 1 2
8 1 3
8 1 4
8 1 5
8 1 6
8 1 7
8 2 1
8 2 3
8 2 4
8 2 5
8 2 6
8 2 7
8 3 1
8 3 2
8 3 4
8 3 5
8 3 6
8 3 7
8 4 1
8 4 2
8 4 3
8 4 5
8 4 6
8 4 7
8 5 1
8 5 2
8 5 3
8 5 4
8 5 6
8 5 7
8 6 1
8 6 2
8 6 3
8 6 4
8 6 5
8 6 7
8 7 1
8 7 2
8 7 3
8 7 4
8 7 5
8 7 6
336

18、利用for循环和range输出9*9乘法表

方法一:

 for x in range(1,10):
for y in range(1,x+1):
print("{0} * {1} = {2}".format(x,y,x*y),end = " ") #end = " " 作用就是:不换行
print('\n',end = " ")

方法二:

1 for i in range(1,10):
2 for j in range(1,i+1):
3 print("%d*%d=%2d" % (i,j,i*j),end=" ") #%d是数值整型对应的格式通配符
4 print(" ")

执行结果:

1 1*1= 1
2 2*1= 2 2*2= 4
3 3*1= 3 3*2= 6 3*3= 9
4 4*1= 4 4*2= 8 4*3=12 4*4=16
5 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

19、有一下列表,
nums=[2,7,11,15,1,8,7]
请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(4,5)]

 nums = [2, 7, 11, 15, 1, 8, 7]
li = []
n1 = []
for i in nums:
for x in nums:
y = i + x
if y == 9:
v = [i, x]
x =(i,x)
if v not in li:
v.reverse()
if v not in li:
n1.append(x)
li.append(v)
print(n1)

结果:

 [(2, 7), (1, 8)]

20、用Python开发程序自动计算方案:

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?

方法一:

 for x in range(1, 100):
for y in range(1, 100):
for z in range(1, 100):
if x + y + z == 100 and 5 * x + 3 * y + z / 3 == 100: # 小鸡 1/3
print(x, y, z)

执行结果:

 4 18 78
8 11 81
12 4 84

方法二:

 for g in range(1, 100):
g1 = g * 5
# print(g1)
for m in range(1, 100):
m1 = m * 3
# print(m1)
for x in range(1, 100):
x1 = x * 1/3
# print(x1)
if g1 + m1 + x1 == 100:
if g + m + x ==100:
print(" 100 文钱买 100 只鸡,其中公鸡{0}只,母鸡{1}只,小鸡{2}只".format(g,m,x))

执行结果:

  100 文钱买 100 只鸡,其中公鸡4只,母鸡18只,小鸡78只
100 文钱买 100 只鸡,其中公鸡8只,母鸡11只,小鸡81只
100 文钱买 100 只鸡,其中公鸡12只,母鸡4只,小鸡84只