#2、3、4、9、13、27不用做
# 1、执行 Python 脚本的两种方式
# 使用python解释器(python aa.py)或在unix系统下赋值成777,执行(./aa.py)
# 5、 Pyhton 单行注释和多行注释分别用什么?
#单行注释使用#号
#多行注释使用三个单引号,,需要注释的内容包含在引号内
# 6、声明变量注意事项有那些?
#1、变量名不能为数字开头;
# 2、不能以python关键字作为变量;
# 3、只能是字母、数字、下划线的任意组合。
# 8、如何查看变量在内存中的地址?
#id(变量名)
# 10、写代码
# a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
#name = input('pelease input your name:")
#password = input('please inout your password:')
#if name == 'seven' and password == '123':
#print('login successfull!')
# b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count = True
# while count<=3:
# name = input('pelease input your name:')
# password = input('please inout your password:')
# if name == 'seven' and password == '123':
# print('login successfull!')
# else:
# print('login erro')
# count += 1
# c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count = True
# while count<=3:
# name = input('pelease input your name:')
# password = input('please inout your password:')
# if name == 'seven'or name == 'alex' and password == '123':
# print('login successfull!')
# else:
# print('login erro')
# count += 1
# 11、写代码
# a. 使用 while 循环实现输出 2 - 3 + 4 - 5 + 6 ... + 100 的和
# count = 1
# sum1 = 0
# sum2 = 0
# while count <= 100:
# if count % 2 == 0:
# sum1 += count
# elif count % 2 == 1:
# sum2 += count
# count += 1
# print(sum1 - sum2)
#输出结果50
# b. 使用 for 循环和 range 实现输出 1 - 2 + 3 - 4 + 5 - 6 ... + 99 的和
# num = 0
# for i in range(99):
# if i % 2 == 0:
# num = num - i
# else:
# num = num + i
# print(num)
#输出结果-49
# c. 使用 while 循环实现输出 1, 2, 3, 4, 5, 7, 8, 9, 11, 12
# count = 0
# while count<13:
# count += 1
# if count == 6 or count == 10:continue
# else:
# print(count)
# d. 使用 while 循环实现输出 1-100 内的所有奇数
# count = 1
# while count<=100:
# if count % 2 >= 1:
# print(count)
# count += 1
# e. 使用 while 循环实现输出 1-100 内的所有偶数
# count = 1
# while count<=100:
# if count % 2 == 0:
# print(count)
# count += 1
# 12、分别书写数字# 5, 10, 32, 7# 的二进制表示
# 101 1010 100000 111
# 14、现有如下两个变量,请简述#n1和n2 是什么关系?
# n1 = 123
# n2 = 123
# n1和n2指向同一块内存地址,数值是123
# 15、现有如下两个变量,请简述n1和n2是什么关系?
# n1 = 123456
# n2 = 123456
#开辟了2个内存地址存放数据123456,并分别起了个名称为n1和n2.
# 16、现有如下两个变量,请简述n1和n2是什么关系?
# n1 = 123456
# n2 = n1
# 开辟了2个内存地址存放数据123456,并分别起了个名称为n1和n2.
# 17、如有以下变量n1 = 5,请使用int的提供的方法,得到该变量最少可以用多少个二进制位表示?
#print(int(5).bit_length()); #( bit_length返回该数字占用的最少位数)
#输出结果3
# 18、布尔值分别有什么?
# True 和 False
# 19、阅读代码,请写出执行结果
# a = "alex"
# b = a.capitalize() #将首字母大写
# print(a)
# print(b)
#执行结果如下
#alex
#Alex
# 请写出输出结果:
# 20、写代码,有如下变量,请按照要求实现每个功能
# name = " aleX"
# a. 移除 name 变量对应的值两边的空格,并输入移除有的内容
# name = ' aleX'
# print(name.strip())
# b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
# name = ' aleX'
# print(name.startswith("al"))
# 执行结果
# False
# c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
# name = ' aleX'
# print(name.endswith('X'))
# 执行结果True
# d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# name = ' aleX'
# print(name.replace("l","p"))
# #执行结果
# apeX
# e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
# name = ' aleX'
# print(name.split('l'))
# f. 请问,上一题 e 分割之后得到值是什么类型?
#分割后得到一个列表
# g. 将 name 变量对应的值变大写,并输出结果
# name = 'aleX'
# print(name.upper())
# h. 将 name 变量对应的值变小写,并输出结果
# name = 'aleX'
# print(name.lower())
# i. 请输出 name 变量对应的值的第 2 个字符?
# name = 'aleX'
# print(name[1])
# j. 请输出 name 变量对应的值的前 3 个字符?
# name = 'aleX'
# print(name[0:3])
# k. 请输出 name 变量对应的值的后 2 个字符?
# name = 'aleX'
# print(name[-2:])
# l. 请输出 name 变量对应的值中 “e” 所在索引位置?
# name ='aleX'
# print(name.index('e'))
# 21、字符串是否可迭代?如可以请使用 for 循环每一个元素?
# name = " aleX"
# for i in name:
# print(i)
# 22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串, li = ['alex', 'eric', 'rain']
# li = ["alex","eric","rain"]
# for i in li:
# print("_".join(i))
#输出结果
# a_l_e_x
# e_r_i_c
# r_a_i_n
# 22、写代码,有如下列表,按照要求实现每一个功能
# li = ['alex', 'eric', 'rain']
# a. 计算列表长度并输出
# li = ['alex', 'eric', 'rain']
# print(len(li))
# 执行结果3
# b. 列表中追加元素 “seven”,并输出添加后的列表
# li = ['alex', 'eric', 'rain']
# li.append("seven")
# print(li)
# 执行结果
# ['alex', 'eric', 'rain', 'seven']
# c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表
# li = ['alex', 'eric', 'rain']
# li.insert(0,'Tony')
# print(li)
# 输出结果:['Tony', 'alex', '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']
# f. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表
# li = ['alex', 'eric', 'rain']
# print(li.pop(2))
# print(li)
# 输出结果:
# rain
# ['alex', 'eric']
# g. 请删除列表中的第 3 个元素,并输出删除元素后的列表
# li = ['alex', 'eric', 'rain','egon','amy']
# print(li.pop(3))
# print(li)
# 输出结果:
# egon
# ['alex', 'eric', 'rain', 'amy']
# h. 请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
# li = ['alex', 'eric', 'rain','egon','amy']
# del li[2:4]
# print(li)
#输出结果:['alex', 'eric', 'amy']
# i. 请将列表所有的元素反转,并输出反转后的列表
# li = ['alex', 'eric', 'rain','egon','amy']
# li.reverse()
# print(li)
# # 输出结果:['amy', 'egon', 'rain', 'eric', 'alex']
#j. 请使用 for、 len、 range 输出列表的索引
# li = ["alex","eric","rain"]
# for index in range(len(li)):
# print(index,li[index])
# 输出结果
# 0 alex
# 1 eric
# 2 rain
# k. 请使用 enumrate 输出列表元素和序号(序号从 100 开始)
# li = ["alex","eric","rain"]
# for index,value in enumerate(li,100):
# print(index,value)
#输出结果:
# 100 alex
# 101 eric
# 102 rain
# l. 请使用 for 循环输出列表的所有元素
# li = ["alex","eric","rain"]
# for i in li:
# for item in i:
# print(item)
# 输出结果:
# a
# l
# e
# x
# e
# r
# i
# c
# r
# a
# i
# n
# 23、写代码,有如下列表,请按照功能要求实现每一个功能
# 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 = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
# print((li[2][2]).upper())
#输出结果ALL
# 24、写代码,有如下元组,按照要求实现每一个功能tu=('alex','eric','rain')
# a. 计算元组长度并输出
# tu=('alex','eric','rain')
# print(len(tu))
# 输出结果:3
# b. 获取元组的第 2 个元素,并输出
# tu=('alex','eric','rain')
# print(tu[1])
#输出结果eric
# c. 获取元组的第 1- 2个元素,并输出d. 请使用 for 输出元组的元素
# tu=('alex','eric','rain')
# print(tu[:2])
# 输出结果:('alex', 'eric')
# e. 请使用 for、 len、 range 输出元组的索引
# tu = ("alex","eric","rain")
# for index in range(len(tu)):
# print(index,tu[index])
# 输出结果
# 0 alex
# 1 eric
# 2 rain
# f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
# tu = ("alex","eric","rain")
# for index,values in enumerate(tu,10):
# print(index,values)
# 输出结果
# 0 alex
# 1 eric
# 2 rain
# 25、有如下变量,请实现要求的功能
# tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11 ,22 ,33)}, 44])
# a. 讲述元祖的特性
#不可变类型,一旦一个对象被定义了,它的值就不能再被修改,如果包含可变的列表,字典等值,那这些值可以改变
# b. 请问 tu 变量中的第一个元素 “alex” 是否可被修改?
#不能被修改
# c. 请问 tu变量中的"k2" 对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
# k2对应的值是列表类型,可以被修改.
# 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, {'k1': 'v1', 'k2': ['age', 'name', 'Seven'], 'k3': (11, 22, 33)}, 44])
# d. 请问 tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
# k3对应的类型是元组,不能被修改
# 26、字典
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# a. 请循环输出所有的 key
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# for keys in dic.keys():
# print(keys)
# #输出结果 k1 k2 k3
# b. 请循环输出所有的 value
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# for values in dic.values():
# print(values)
# # #输出结果 vi vw [11,22,33]
#c.请循环输出所有的 key 和 value
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# for k,v in dic.items():
# print(k,v)
#输出结果
# k1
# v1
# k2
# v2
# k3[11, 22, 33]
# d. 请在字典中添加一个键值对, "k4": "v4",输出添加后的字典
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# dic.setdefault("k4","v4")
# print(dic)
# # 执行结果
# {'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'v1', 'k4': 'v4'}
# e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# dic["k1"] = "alex"
# print(dic)
# 执行结果{'k3': [11, 22, 33], 'k2': 'v2', 'k1': 'alex'}
# f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# dic["k3"].append("44")
# print(dic)
# 执行结果
# {'k3': [11, 22, 33, '44'], 'k2': 'v2', 'k1': 'v1'}
# g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
# dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# dic["k3"][0] = "18"
# print(dic)
# 执行结果
# {'k3': ['18', 22, 33], 'k2': 'v2', 'k1': 'v1'}
# 28、求 1- 100内的所有数的和
# a = 0
# for i in range(0,100):
# a += (i+1)
# print(a)
# 执行结果5050
# 29、元素分类
# 有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
# 即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}
# dic1 = {}
# list2 = [11,22,33,44,55,66,77,88,99,90]
# for i in list2:
# if i > 66:
# dic1.setdefault('k1',[]).append(i)
# else:
# dic1.setdefault('k2',[]).append(i)
# print(dic1)
# 30、购物车
# 功能要求:
# 要求用户输入总资产,例如: 2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# goods = [
# {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998},
# ]
goods= [ {"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},]
shop_card=[]
sum=0
money = int(input('please input you have money:'))
tag=True
while tag:
print('Welcome to shopping')
print(' 序号 名称 价格')
for num in range(len(goods)):
print(' ',num,goods[num]['name'],goods[num]['price'])
choice=int(input('please choice your num:'))
if choice >= len(goods):
print('无对应商品,请重新输入')
continue
else:
shop_num=int(input('please input your shop_num:'))
shop_card.append((goods[choice]['name'],goods[choice]['price'],shop_num))
print(shop_card)
while tag:
js_choice = input('1:结算 2:继续选购 --->')
if js_choice == '1':
for i in shop_card:
sum+=i[1]*i[2]
if money-sum >0:
print('购买成功,剩余金额',money-sum)
tag=False
else:
print('账户余额不足')
tag = False
elif js_choice == '2':
break
else:
print('输入有误,请重新输入')