# 1.命名规范
'''
1.名字别人一看就知道谁写的
比如: 名字 就定义为 name ,定义学生用student
2、变量、函数、模块命名遵循下划线命名法,
例如:student_info,my_age
3、类遵循大驼峰命名法。
MyStudent
'''
#2.2、默写字符串12个功能,并且描述其作用。
a=''
a.split()#分割内容,变成列表
a.upper()#所有字母变大写
a.isdigit()#判断字符串是不是数字组成
a.replace()#替代
a.index()#索引,没有找到就会报错
a.strip()#删除两边的全部空格
a.title()#把字符串中的每个英文单词首字母变成大写
a.capitalize()#把字符串首字母变成大写
a.lower()#字符串英文全部小写
a.find()#查找并返回对应的下标,如果没有找到则返回-1
a.rfind()#从右到左查找并返回对应的下标,如果没有找到则返回-1
a.rindex()#从右到左索引,没有找到就会报错
#3.数字、字符串、元组、列表、字典对应的布尔值为False的分别为什么
.#空数字,空字符串,空元组,空列表,空字典
a = 0
b = ''
c=()
d=[]
e={}
print(bool(a),bool(b),bool(c),bool(d),bool(e))
#第4题
#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']
#(1)
lst2=lst[::2] #采用步长
print(lst2)
#(2)
lst3=lst[1:7:2] #采用步长
print(lst3)
#(3)
lst4=lst[-1:-2:-1] #逆序
print(lst4)
#(4)
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']]
#(1)
lis[0][1][2]['k1'][0]='AA'
print(lis)
#(2)
lis[0][1][2]['k1'][1]='3'
print(lis)
#第6题
'''
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’。
'''
(1)
dic = {'k1': 'v1', 'k2': ['sb', 'aa'], (1, 2, 3, 4, 5): {'k3': ['2', 100, 'wer']}}
dic['k2'].append(33)
print(dic)
(2)
dic['k2'].insert(0,'s')
print(dic)
(3)
dic[(1,2,3,4,5)]['k4']=['v4']
print(dic)
(4)
dic[(1,2,3,4,5)][(1,2,3)]='ok'
print(dic)
(5)
dic[(1,2,3,4,5)]['k3'][2]='qq'
print(dic)
# 第7题
'''
7、类型转换题目
(1).int和str 如何转换,转换的结果是什么。
(2).int 与bool如何转换,转换的结果是什么。
(3).str 与 list 如何转换,转换的结果是什么。
'''
(1) #int值可以转换成str,但是str转换的前提条件是字符串元素全部都是整型数
print(str(8))#整型变字符串
print(int('123'))#字符串变整型
(2) #int值和bool值之间的相互转化
#除了0之外的所有bool型都是true
print(bool(0))#false
print(bool(1))#true
print(int(True))#默认为1
print(int(False))#默认为0
(3)str 和 list
str 转换成list
a = '12dsdsdfd'
print(list(a))
#list 转换成str
#如果有数字则需要全部转成字符串的形式才可以,否则报错
a = ['ew','fdf','fdf','fdf',123]
b = ''.join(i for i in a)
print(b)
# 第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。
'''
#(1).有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aabbcc
li=['aa','bb','cc']
li = ''.join(i for i in li)
print(li)
#(2)有列表li=['aa','bb','cc'],将该列表构造成一个字符串 aa*bb*cc
li=['aa','bb','cc']
li = '*'.join(i for i in li)
print(li)
#(3)有字符串 s='albblcc' 将构造成一个列表 lst=[‘a’,’lbblcc’]
s='albblcc'
s1 = s[0]
s2 = s[1:]
lst=[s1,s2]
print(lst)
#(4)有字符串 s='aab bcc' 构造成列表 lst=[‘aab’,’bcc’]
s='aab bcc'
s1 = s.split(' ')
print(s1)
#(5)有字符串s='abcd' 将字符串变成a_b_c_d。
s='abcd'
s='_'.join(i for i in s)
print(s)
# 第9题:使用for循环和while循环打印1-2+3-4+5... +99 的结果。
# 用for循环
num = 0
for i in range(1,100):
if i %2 ==0:
num-=i
else:
num+=i
print(num)
#用while循环
i = 1
num = 0
while i<100:
if i %2 ==0:
num-=i
else:
num+=i
i+=1
print(num)
# 第10题。使用range()函数打印 100,99,98,...0
j = 100
for i in range(0,101):
print(j,end=' ')
j-=1
# 11、计算用户输入内容中索引为奇数并且对应的元素的数字的个数(没有则个数为零)
count=0
a = input("请用户输入您所需要输入的内容")
for i in range(len(a)):
if i % 2==1:
if a[i].isdigit()==True:
count+=1
print(count)
# # 第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]
dict={}
min=[]
max=[]
for i in li:
if i <66:
min.append(i)
else:
max.append(i)
dict['key1']=max
dict['key2']=min
print(dict)
# 13、查找列表中lst中的元素,移除每一个元素的空格,并且找出以’A’或者‘a’开头,并
# # 以‘c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ['bajie ', 'axlzC', ' AbC ', ' gsssq ', ' bobo ', ' dongdong ', ' aqc']
for i in li:
a = i.strip()
if a.startswith('a') or a.startswith('A'):
if a.endswith('c'):
print(a)
# # 14、整数加法计算器
# 例如用户输入:5+8+21...(最少输入2个数相加),然后进
# 行分割再进行计算,将最后的计算结果添加到字典中(替换None)。dic={‘最终结果’:None}
dic={'最终结果':None}
print("欢迎使用计算机")
print("此计算机只能做加法,最少输入两个数相加")
a = input("请输入")
b=a.split('+')
num=0
for i in b :
i = int(i)
num+=i
print(num)
# # 15、购买商品有商品列表 lst= ["手机", "电脑", "鼠标垫", "游艇"]
# (1)在控制台上显示所有的商品,格式: 序号 商品名称 例如: 1 手机。
# (2)如果输入Q则结束购买任务。
# (3)输入对应的序号显示对应的商品,例如 输入 1 显示 手机
# (4)如果输入的不是数字,提示用户输入有误。
# (5)如果数字范围不再序号范围内,也提示用户输入有误。
b=['手机','电脑','鼠标垫','游艇']
print("欢迎来到小超市")
print('-------------')
lst =['a','b','c']
for i,j in enumerate(b,start=1):
print('序号:',i,'名称:',j)
print('输入Q结束购买')
while True:
a = input("请输入您需要购买商品的序号:")
if a.upper() == 'Q':
print("结束购买")
break
elif a.isdigit() == True:#(3)输入对应的序号显示对应的商品,例如 输入 1 显示 手机
a = int(a)
if a in range(0,len(b)):
print(b[a-1])
else:#(5)如果数字范围不再序号范围内,也提示用户输入有误。
print("输入有误,请重新输入!")
continue
else:#(4)如果输入的不是数字,提示用户输入有误。
print("输入不是数字!请重新输入!")
continue
# # 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_name=[]
board = ['zs', 'ls', 'ww']
while True:
count = 0
dic = {}
a=input('请输入用户名【输入Q或q直接退出】:')
if a=='Q'or a=='q':
break
b = input('请输入密码【输入Q或q直接退出】:')
if b=='Q' or b=='q':
break
for i in board:
if i in a:
a1=a.replace(i,'**')
dic[a1]=b
user_name.append(dic)
print(dic)
count+=1
if count ==0:
dic[a] = None
dic[a] = b
user_name.append(dic)
print(dic)
count+=1
o=input('是否继续,请输入是或者否:')
if o=='是':
continue
elif o=='否':
break
else:
print('对不起,输入有误,程序结束')
break
# 17、超市买水果
# (1).输入自己所有的钱。
# (2)展示商品的序号,名称及其价格。
# (3)输入要买商品的序号。
# (4)输入要买商品的数量。
# (5)购物车中显示购买的水果名称及其对应的数量和剩余钱。
# (6)如果序号输入有误就提示用户重新输入。
# (7)如果钱不够了提示用户钱不够,并且退出程序。
y = ['苹果-1元钱一斤','梨子-2元钱一斤','西瓜-三元钱一斤','香蕉-4元钱一斤']
print("欢迎来到超市")
#(2)展示商品的序号,名称及其价格。
print('-------------')
for i,j in enumerate(y,start=1):
print('序号:',i,j)
print('输入Q或者q可结束购买')
money = int(input("请输入您钱包里的钱:"))
gouwuche = []
while True:
# (3)输入要买商品的序号。
a = input("请输入您需要购买商品的序号:")
if a.upper() == 'Q':
print("结束购买")
break
elif a.isdigit() == True:
print("您还剩余{}元".format(money))
if a=='1':
print("商品是:苹果")
#(4)输入要买商品的数量。
num = int(input("请输入您要买的数量"))
print('您购买了',num,'斤苹果,一共花费',num*1,'钱')#(5)购物车中显示购买的水果名称及其对应的数量和剩余钱。
money = money-num*1
print("剩余",money,"元")
elif a=='2':
print("商品是:梨子")
num = int(input("请输入您要买的数量"))
print('您购买了',num,'斤梨子,一共花费',num*2,'钱')
money = money-num*2
print("剩余",money,"元")
elif a=='3':
print("商品是:西瓜")
num = int(input("请输入您要买的数量"))
print('您购买了',num,'斤西瓜,一共花费',num*3,'钱')
money = money-num*3
print("剩余",money,"元")
elif a=='4':
print("商品是:香蕉")
num = int(input("请输入您要买的数量"))
print('您购买了',num,'斤香蕉,一共花费',num*4,'钱')
money = money-num*4
print("剩余",money,"元")
else:#(5)如果数字范围不再序号范围内,也提示用户输入有误。
print("输入有误,请重新输入!")
continue
if money<0:#(7)如果钱不够了提示用户钱不够,并且退出程序。
print("你没钱了!程序退出")
break
else:#(4)如果输入的不是数字,提示用户输入有误。
print("输入有误!请重新输入!")
continue