1、简述变量命名规范。
1)由字母、下划线和数字组成,且数字不能开头 2)长度任意长; 3)标识符不能与关键字同名;
2、默写字符串12个功能,并且描述其作用。
format() 格式化字符串 {} {位置索引} {变量索引} center() 居中,默认空格补齐 zfill() 右对齐,0补齐 count() 计数 index() 找索引 endswith() 判断是否以..结束 startswith() 判断是否以..开头 isspace() 是否全空格 isalnum() 是否全数字 字母 isalpha() 是否全字母 isdigit() 是否全数字 islower() 是否全小写 isupper() 是否全大写 istitle() 是否首字母大写
3、数字、字符串、元组、列表、字典对应的布尔值为False
数字:0 字符串:'' 元组:() 列表:[] 字典:{}
4、写代码,有如下列表,利用切片实现每一个功能。
lst=[1,3,2,'a’,4,’b’,5,’c’] (1) .通过切片获取新的列表 lst2, lst2=[1,2,4,5] (2) .通过切片获取新的列表 lst3,lst3=[3,’a’,’b’] (3) .通过切片获取新的列表 lst4,lst4=[‘c’] (4) .通过切片获取新的列表 lst5,lst5=[‘b’,’a’,3]
lst=[1,3,2,'a',4,'b',5,'c']
lst2 = lst[0:7:2]
print(lst2)
lst3 = lst[1:6:2]
print(lst3)
lst4 = lst[-1:-2:-1]
print(lst4)
lst5 = lst[-3::-2]
print(lst5)
5、列表题
lis = [['k', ['qqq', 20, {'k1': ['aa', 3, '1']}, 33], 'xx']] (1) .将 aa 变成大写AA。 (2) .将列表中的3变成字符串‘3’
lis = [['k', ['qqq', 20, {'k1': ['aa', 3, '1']}, 33], 'xx']]
lis[0][1][2]['k1'][0] = 'AA'
lis[0][1][2]['k1'][1] = '3'
print(lis)
6、字典
dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}} (1) . k2对应的值中添加33 (2) .k2对应的值的第一个位置插入一个元素‘s’ (3) .将(1,2,3,4,5)对应的值添加一个键值对 ‘k4’:’v4’ (4) .将(1,2,3,4)对应的值添加一个键值对(1,2,3):‘ok’ (5) .将’k3’对应的值的‘wer’改为’qq’。
dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
dic['k2'].append(33)
dic['k2'].insert(0, 's')
dic[(1,2,3,4,5)]['k4'] = 'v4'
dic[(1,2,3,4,5)][(1,2,3)] = 'ok'
dic[(1,2,3,4,5)]['k3'][2] = 'qq'
print(dic)
7、类型转换题目 (1) .int和str 如何转换,转换的结果是什么。 (2) .int 与bool如何转换,转换的结果是什么。 (3) .str 与 list 如何转换,转换的结果是什么。
str = str(3)
print(str)
num = int('2')
print(num)
n = int(False)
print(n)
bo = bool(2)
print(bo)
str = ','
lis = ['1','2','3','4']
s = str.join(lis)
print(s)
str = 'www.hao123.com'
print(str.split('.'))
8、实现下列结果
(1) .有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aabbcc (2) .有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aa*bb*cc (3) .有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’] (4) .有字符串 s='aab bcc' 构造成列表 lst=[‘aab’,’bcc’] (5) .有字符串s='abcd' 将字符串变成a_b_c_d。
li = ['aa', 'bb', 'cc']
ret = ''.join(li)
print(ret)
s = ''
li = ['aa', 'bb', 'cc']
for i in li:
s += i
print(s)
ret = '*'.join(li)
print(ret)
s = 'albblcc'
s1 = s.partition('a')
s2 = [s1[1], s1[2]]
print(s2)
s = 'aab bcc'
print(s.split(' '))
s = 'abcd'
a = '_'.join(s)
print(a)
9、使用for循环和while循环打印1-2+3-4+5... +99 的结果。
sum = 0
for i in range(1, 100):
if i % 2 != 0:
sum += i
else:
sum -= i
print(sum)
i = 1
sum = 0
while i <= 99:
if i % 2 != 0:
sum += i
else:
sum -= i
i += 1
print(sum)
10、使用range()函数打印 100,99,98,...0
for i in range(100, -1, -1):
print(i, end=',')
11、计算用户输入内容中索引为奇数并且对应的元素的数字的个数(没有则个数为零)
s = input('请输入内容:')
sum = 0
for i in range(len(s)):
if i % 2 != 0 and s[i-1].isdigit():
sum+=1
print(sum)
12、有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
dic = {}
dic['key1'] = []
dic['key2'] = []
for i in li:
if i >66:
dic['key1'].append(i)
else:
dic['key2'].append(i)
print(dic)
13、查找列表lst中的元素,移除每一个元素的空格,并且找出以’A’或者‘a’开头,并以‘c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ['bajie ', 'axlzC', ' AbC ', ' gsssq ', ' bobo ', ' dongdong ', ' aqc']
li2 = []
for i in li:
a = i.strip()
if a.startswith('A')or a.startswith('a')and a.endswith('c'): #也可使用索引
li2.append(a)
for i in li2:
print(i,end=' ')
14、整数加法计算器
例如用户输入:5+8+21...(最少输入2个数相加),然后进行分割再进行计算,将最后的计算结果添加 到字典中(替换None)。 dic={‘最终结果’:None}
1.split->列表
2.for循环
3. 转换int
4. 累加
he = 0
s = ''
num = input('请输入数:(数与数之间用"+"连接)')
he =eval(num)
dic = {'最终结果':None}
dic['最终结果'] = he
print(dic)
15、购买商品有商品列表 lst= ["手机", "电脑", "鼠标垫", "游艇"]
(1) 在控制台上显示所有的商品,格式: 序号 商品名称 例如: 1 手机。 (2) 如果输入Q则结束购买任务。 (3) 输入对应的序号显示对应的商品,例如 输入 1 显示 手机 (4) 如果输入的不是数字,提示用户输入有误。 (5) 如果数字范围不再序号范围内,也提示用户输入有误。
lst= ["手机", "电脑", "鼠标垫", "游艇"]
for i,j in enumerate(lst,start=1):
print('商品序号:',i,' 商品名称:',j)
while True:
x = input('请输入您要的商品对应序号:')
if x.lower() =='q':
break
elif x.isdigit():
num = int(x)
if num >0 and num <=len(lst):
print(lst[int(x)-1])
else:
print("您输入的有误!请重新输入。")
16、写程序:保存用户名和密码。
(1).用户名和密码保存在如下数据结构中 user_list = [ {'username': 'zs', 'password': '1234'}, {'username': 'ls', 'passwod': 'asdf'} ] (3) .非法字符模板board = ['zs', 'ls', 'ww']。 (4) .可连续输入用户名和密码。 (5) .如果想终止程序,请输入Q或者q。 (6) .录入用户名时,如果是board里面的非法字符串,将非法字符串替换成同等数量的* 例如 zs 替换成**。然后添加到user_list中 (7) .每次添加成功后,打印出刚添加的用户名,密码。
user_list = [
{'username': 'zs', 'password': '1234'},
{'username': 'ls', 'passwod': 'asdf'}
]
board = ['zs', 'ls', 'ww']
while True:
user_name = input('请输入用户名[输入Q或q退出]:')
if user_name.upper()=='Q':
print('退出程序了')
break
password = input('请输入密码:')
if user_name in board:
user_name = '*'*len(user_name)
l = {'user_name':user_name,'password':password}
user_list.append(l)
print(l)
17、超市买水果
(1)输入自己所有的钱。 (2) 展示商品的序号,名称及其价格。 (3) 输入要买商品的序号。 (4) 输入要买商品的数量。 (5) 购物车中显示购买的水果名称及其对应的数量和剩余钱。 (6) 如果序号输入有误就提示用户重新输入。 (7) 如果钱不够了提示用户钱不够,并且退出程序。
product = [
{'name': '苹果', 'price': 10},
{'name': '香蕉', 'price': 15},
{'name': '橘子', 'price': 17},
{'name': '菠萝', 'price': 20},
]
# 创建一个购物车来存放水果
shopping_cart = {}
# 提示用户输入钱
money_str = input('请输入你的账户余额:')
# 判断输入的是否是数字
if money_str.isdigit():
# 是的话转换类型,后面会进行计算
user_money = int(money_str)
# 展示商品
for index, dic in enumerate(product, start=1):
print('序号:{},名称:{},价格:{}'.format(index, dic['name'], dic['price']))
# 输入有误重新输入,需要循环
while True:
# 输入序号
num_xh = input('请输入你想要的序号:')
if num_xh.isdigit():
num = int(num_xh)
if num > 0 and num <= len(product):
num_sl_str = input('请输入数量:')
if num_sl_str.isdigit():
num_sl = int(num_sl_str)
product_dj = product[num - 1]['price']
sum = product_dj * num_sl
if user_money >= sum:
product_name = product[num - 1]['name']
ret = shopping_cart.get(product_name)
if ret:
yuan_sl = shopping_cart[product_name]
shopping_cart[product_name] = yuan_sl + num
else:
shopping_cart[product_name] = num_sl
print(shopping_cart)
user_money = user_money - sum
print('你还剩{}元'.format(user_money))
else:
print('你的钱不够,买不起!')
else:
print('数量!数量是数字!')
else:
print('你输的超出去了!')
else:
print('你能不能输序号啊!')
else:
print('看清楚再输,你那输的是数字吗!')