周末练习(一)

#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('输入有误,请重新输入')
原文地址:https://www.cnblogs.com/bingpan/p/7226958.html