开发基础(练习题)
一、基础语法练习题

#1
li = ['jiu','lin','liang']
print ("{0}{1}{2}{3}{4}".format(li[0],'_',li[1],'_',li[2]))
#2
li = ["alec", " aric", "Alex", "Tony", "rain"]
for l in li :
if l.strip().startswith("a") == True or l.strip().startswith("A") and l.strip().endswith("c"):
print(l.strip())
tu = ("alec", " aric", "Alex", "Tony", "rain")
for l in tu :
if l.strip().startswith("a") == True or l.strip().startswith("A") and l.strip().endswith("c"):
print(l.strip())
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
for l in dic.values() :
if l.strip().startswith("a") == True or l.strip().startswith("A") and l.strip().endswith("c"):
print(l.strip())
#3
#3
li = ['alex','eric','rain']
print(len(li))
li.append("seven")
print(li)
li.insert(0,"Tony")
print(li)
li[1] = "Kelly"
print(li)
li.pop(li.index("eric"))
print(li)
li_2 = li[1]
li.pop(1)
print(li_2,li)
print(li)
li.pop(3)
print(li[3:])
li.pop(2,4)
print(li)
print(li[::-1])for k in range(len(li)):
print(k)
for k,y in enumerate(li):
print(k+100,y)

#4 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446] print(li[2][1][1]) li[2][2] = 'ALL' print(li)
#5
#5
tu = ('alex', 'eric', 'rain')
print(len(tu))
print(tu[2])
print(tu[1],tu[2])
for i in tu:
print(i)
for i in range(len(tu)):
print(i)
for k,y in enumerate(tu):
print(k+10,y)

#6
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
#1,只读列表,2,不能修改
#不可以
#k2是 字典,对应的值是列表可以被修改
tu[1][2]["k2"].append("Seven")
print(tu)
#k3对应的值是元祖不能修改

#7
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for k in dic.keys():
print(k)
for v in dic.values():
print(v)
for k,y in dic.items():
print(k,y)
dic["k4"] = "v4"
print(dic)
dic['k1'] = 'alex'
print(dic)
dic['k3'].append(44)
print(dic)
dic["k3"].insert[0,18]print(dic)
#8
s = 'alex'
print(s.split())
print(tuple(s))
li = ['alex','seven']
print(tuple(li))
tu = ('alex','seven')
print(list(tu))
li = ['alex','seven']
dic = {}
for k,y in enumerate(li):
dic.setdefault((10-k),y )
print(dic)

#9
s = [11,22,33,44,55,66,77,88,99,90]
len(s)
k1 = []
k2 = []
dic = {'k1':None,'k2':None}
for k in range(len(s)):
print(s[k])
if s[k] > 66 :
k1.append(s[k])
elif s[k] <66 :
k2.append(s[k])
dic['k1'] = k1
dic['k2'] = k2
print(dic)
#10
li = ["手机", "电脑", '鼠标垫', '游艇']
shoplist = []
for k,y in enumerate(li):
print(k,y)
user = int(input("输入序号---"))
print(li[user])
user_1 = (input("添加的商品----"))
(li.append(user_1))
print(li)
#11
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
None "" () [] {} 0
#13
l1 = [11,22,33]
l2 = [22,33,44]
#都有的元素
for i in l1:
if i in l2:
print(i)
#l2没有的
for i in l1:
if i not in l2:
print(i)
#l1没有的
for i in l2:
if i not in l1:
print(i)
#互相都没有的元素
for i in l1:
if i not in l2 :
print(i)
for k in l2:
if k not in l1:
print(k)
#14
#14
for i in range(100,0,-1):
print(i)
for i in range(1,101):
print(i)
count = 100
while count >1 :
count -= 1
print(count)
count = 0
while count <100 :
count +=1
print(count)
#15
for i in range(1,10):
for j in range(1,i+1):
print(str(i) + "*" + str(j) + "=" + str(i * j), end=' ')
print()
二、购物车程序
需求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编码购买商品
- 用户选择商品后检测余额是否够,够就直接扣款,不够就提醒
- 用户可以一直购买商品,也可以随时退出,退出时,打印已购买的商品和余额
shoplist = []
commodity = [['iphonex',8888],['Book',99],['Macpro',7666],['小米6',3200]]
long = len(commodity)
wages = input("请输入你的工资--->")
if wages.isdigit() ==True:
wages = int(wages)
print('你的工资是',wages,'元')
while True:
print('--------商品列表-------')
for y, p in enumerate(commodity):
print("{0} {1} \t{2}".format(y, p[0], p[1], '元'))
need = input("请输入你需要购买的商品编号---->")
if need == 'q' or need == 'Q':
print('退出不买了')
print("-----你的购物车-----")
for y, p in enumerate(shoplist):
print(y, p[0], p[1])
# wages = wages - commodity[need][1]
print("你剩余", wages, "元")
break
elif need.isdigit() == True:
need = int(need)
if wages >= commodity[need][1]:
need = int(need)
elif wages < commodity[need][1]:
print("骚年去赚钱吧,你还剩", wages, "元了,还想买", commodity[need][0])
continue
if need >= 0 and need <= long:
print('你购买了', commodity[need])
shoplist.append(commodity[need])
print("-----你的购物车-----")
for y, p in enumerate(shoplist):
print(y, p[0], p[1])
wages = wages - commodity[need][1]
print("你剩余", wages, "元")
else:
print("你输入的什么玩意,请输入数字")
continue
else:
print("你输入的什么玩意,让你输入数字")
三、多级菜单
需求:
- 现有省市县三级结构,要求程序启动后,允许用户可依次选择进入各级子菜单,
- 可在任意一级菜单返回上一级
- 可以在任意一级菜单退出程序
menu = {
'河北':{
'承德':{
'双桥区':'贾营村'
}
},
'北京':{
'通州区':{
'东潞苑小区','我家'
}
}
}
while True:
print(menu.keys())
choice = input("请输入你要查看的省份---")
if menu.get(choice) != None:
sub = menu[choice]
#print(sub.keys())
while True:
print(sub.keys())
choice_sub = input("请输入你要查看的市,或者返回上一级请输入R")
if choice_sub == 'r' or choice_sub == 'R':
break
elif choice_sub == 'q' or choice == 'Q':
print("程序退出")
exit()
elif sub.get(choice_sub) != None:
print(sub[choice_sub])
sub_sub = input("是否返回上一层,R=返回,e=退出")
if sub_sub == 'r' or sub_sub == 'R':
print('返回上一层')
else:
print('退出')
exit()
elif choice == 'q' or choice == 'Q':
print("程序退出")
exit()
#三级菜单高效写法
level = menu
L = []
while True:
for k in level:
print(k)
user = input(">").strip()
if not level:continue
if user in level:
L.append(level)
level = level[user]
elif user == 'b':
if len(L) != 0:
level = L.pop()
else:
print('到头了')

浙公网安备 33010602011771号