好多练习题

# #!/usr/bin/env python
# # -*- coding: utf-8 -*-
# # @Time    : 2017/7/21 21:33
# # @Author  : Mr_zhang
# # @Site    :
# # @File    : 考试.py
# # @Software: PyCharm
#-----------------------------------------------------------------------------------------------------------------------
# 1、执行 Python 脚本的两种方式
# 一、在Python解释器中执行;二、在交互式命令提示符中用Python+路径执行
#-----------------------------------------------------------------------------------------------------------------------
# 5、 Pyhton 单行注释和多行注释分别用什么?
# 在Python中,单行注释用(#号),多行注释用三引号('''      #''')
#-----------------------------------------------------------------------------------------------------------------------
# 6、声明变量注意事项有那些?
# 变量由变量名,赋值符号与变量值组成,变量名可是是字母数字下划线的组合,不能以数字开头等 ,变量必须是可变的量
#-----------------------------------------------------------------------------------------------------------------------
# 8、如何查看变量在内存中的地址?
# 假设变量为name查看name在内存中的地址应该用print(id(name))即可获得该变量在内存中的地址
#-----------------------------------------------------------------------------------------------------------------------
# 10、写代码
# # a.实现用户输入用户名和密码,当用户名为 seven     且 密码为 123     时,显示登陆成功,否则登陆失败!
# name=input('请输入用户名:')
# passwd=input('请输入密码:')
# if name=='seven'and passwd=='123':
#     print('登录成功')
# else:
#     print('登录失败')
name=input('请输入用户名:')
passwd=input('请输入密码:')
if name =='seven'and passwd=='123':
    print('登录成功')
else:
    print('登录失败')

# # b.实现用户输入用户名和密码,当用户名为 seven     且 密码为 123     时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count=0
# while count<=2:
#     name=input('请输入用户名:')
#     passwd=input('请输入密码:')
#     if name=='seven'and passwd=='123':
#         print('登录成功')
#         break
#     else:
#         count+=1
#         print('登录失败')
count=0
while count<=2:
    name=input('请输入用户名:')
    passwd=input('请输入密码:')
    if name=='seven'and passwd=='123':
        print('登录成功!')
        break
    else:
        count+=1
        print('超过三次登录失败,请重新运行')
# # c.实现用户输入用户名和密码,当用户名为 seven     或 alex     且 密码为 123     时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# count=0
# while count<=2:
#     name=input('请输入用户名:')
#     passwd=input('请输入密码:')
#     if (name=='seven'or name=='alex')and passwd=='123':
#         print('登录成功')
#         break
#     else:
#         count+=1
#         print('登录失败')
count=0
while count<=2:
    name=input('请输入用户名:')
    passwd=input('请输入密码:')
    if (name=='alex'or name=='seven')and passwd=='123':
        print('登录成功')
    else:
        count+=1
        print('三次登录失败自动退出')
#-----------------------------------------------------------------------------------------------------------------------
# 11、写代码
# # # 使用 while 循环实现输出 2    - 3    +    4    - 5    +    6    ...    +    100     的和
# count=1
# s=0
# while count<100:
#     count+=1
#     s+=(-1)**count*count
# print(s)
count=1
s=0
while count<100:
    count+=1
    s+=(-1)**count*count
print(s)
# b.     使用 for 循环和 range 实现输出 1    - 2    +    3    - 4    +    5    - 6    ...    +    99     的和
# num=0
# for i in range(1,100):
#     if i&2==0:
#         num-=i
#     else:
#         num+=i
# print(num)
num=0
for i in range(1,100):
    if i%2==0:
        num-=1
    else:
        num+=1
print(num)
# # c.     使用 while 循环实现输出 1, 2, 3, 4, 5, 7, 8, 9, 11, 12
# count=0
# while count<12:
#     count+=1
#     if count==6 or count==10:
#         continue
#     print(count)
count=0
while count<12:
    count+=1
    if count==6 or count==10:
        continue
    print(count)
# # # d.     使用 while 循环实现输出 1-100     内的所有奇数
# count=0
# while count<100:
#     count+=1
#     if count%2!=0:
#         print(count)
count=0
while count<100:
    count+=1
    if count%2!=0:
        print(count)
# # e.     使用 while 循环实现输出 1-100     内的所有偶数
# count=0
# while count<100:
#     count+=1
#     if count%2==0:
#         print(count)
count=0
while count<100:
    count+=1
    if count%2==0:
        print(count)

#-----------------------------------------------------------------------------------------------------------------------
# # 12、分别书写数字 5, 10, 32, 7 的二进制表示
# print(bin(5))      # 0b101
# print(bin(10))     # 0b1010
# print(bin(32))     # 0b100000
# print(bin(7))      # 0b111
#-----------------------------------------------------------------------------------------------------------------------
# # 14、现有如下两个变量,请简述 n1     和 n2     是什么关系?
# # n1    =    123
# # n2    =    123
# n1和n2指向同一块内存地址,数值是123
#-----------------------------------------------------------------------------------------------------------------------
# 15、现有如下两个变量,请简述 n1     和 n2     是什么关系?
# n1    =    123456n2    =    123456
# 开辟了2个内存地址存放数据123456,并分别起了个名称为n1和n2.
#-----------------------------------------------------------------------------------------------------------------------
# 16、现有如下两个变量,请简述 n1     和 n2     是什么关系?
# n1    =    123456
# n2    =    n1
# 给数据123456起了另外一个别名n2,相当于n1和n2都指向该数据的内存地址n
#-----------------------------------------------------------------------------------------------------------------------
# 17、如有一下变量 n1    =    5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
# n=5
# print(n.bit_length())
# n=1
# print(n.bit_length())
#-----------------------------------------------------------------------------------------------------------------------
# 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'))
# # c.     判断 name 变量对应的值是否以 "X"     结尾,并输出结果
# name    =    "    aleX"
# print(name.endswith('X'))
# # d.     将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# name    =    "    aleX"
# print(name.replace('l','p'))
# # e.     将 name 变量对应的值根据 “l” 分割,并输出结果。
# name    =    "    aleX"
# res=name.split('l')
# # f.     请问,上一题 e     分割之后得到值是什么类型?
# name    =    "    aleX"
# print(type(res[1]))
# 得到的是字符串类型
# 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='egon'
# for i in name:
#     print(i)
#-----------------------------------------------------------------------------------------------------------------------
# # 22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串, li     = ['alex',    'eric',    'rain']
# li=['alex','eric','rain']
# for i in li:
#     j="_".join(i)
#     print(j)
#-----------------------------------------------------------------------------------------------------------------------
# 22、写代码,有如下列表,按照要求实现每一个功能
# li=['alex','eric','rain']
# a.     计算列表长度并输出
# li=['alex','eric','rain']
# print(len(li))
# # b.     列表中追加元素 “seven”,并输出添加后的列表
# li=['alex','eric','rain']
# li.append('seven')
# print(li)
# # c.     请在列表的第 1     个位置插入元素 “Tony”,并输出添加后的列表
# li=['alex','eric','rain']
# li.insert(0,'Tony')
# print(li)
# # d.     请修改列表第 2     个位置的元素为 “Kelly”,并输出修改后的列表
# li=['alex','eric','rain']
# li[2]='kelly'
# print(li)
# # e.     请删除列表中的元素 “eric”,并输出修改后的列表
# li=['alex','eric','rain']
# del li[1]
# print(li)
# # f.     请删除列表中的第 2     个元素,并输出删除的元素的值和删除元素后的列表
# li=['alex','eric','rain']
# l=li.pop(1)
# print(li)
# print(l)
# g.     请删除列表中的第 3     个元素,并输出删除元素后的列表
# li=['alex','eric','rain']
# del li[-1]
# print(li)
# # h.     请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
# li=['alex','eric','rain']
# del li[2:4]
# print(li)
# # i.     请将列表所有的元素反转,并输出反转后的列表j.
# li=['alex','eric','rain']
# j=sorted(li,reverse=True)
# print(j)
# j请使用 for、 len、 range 输出列表的索引
# li=['alex','eric','rain']
# for i in range(len(li)):
#     print(i,li[i])
# k.     请使用 enumrate 输出列表元素和序号(序号从 100 开始)
# li=['alex','eric','rain']
# # l.     请使用 for 循环输出列表的所有元素
# li=['alex','eric','rain']
# for i in li:
#     print(i)
#-----------------------------------------------------------------------------------------------------------------------
# 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])
# # b.     请使用索引找到 'all'     元素并将其修改为 “ALL”
# li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]
# li[2][2]='ALL'
# print(li)
#-----------------------------------------------------------------------------------------------------------------------
# 24、写代码,有如下元组,按照要求实现每一个功能
# tu=('alex','eric','rain')
# a.     计算元组长度并输出
# tu=('alex','eric','rain')
# print(len(tu))
# b.     获取元组的第 2     个元素,并输出
# tu=('alex','eric','rain')
# print(tu[1])
# c.     获取元组的第 1-2     个元素,并输出
# tu=('alex','eric','rain')
# print(tu[0:2])
# d.     请使用 for 输出元组的元素
# tu=('alex','eric','rain')
# for i in tu:
#         for item in i:
#             print(item)
# # e.     请使用 for、 len、 range 输出元组的索引
# tu=('alex','eric','rain')
# for i in range(len(tu)):
#     print(i,tu[i])
# # f.     请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
# tu=('alex','eric','rain')
# for k,v in enumerate(tu,10):
#     print(k,v)
#-----------------------------------------------------------------------------------------------------------------------

# 25、有如下变量,请实现要求的功能
# tu    =    ("alex",    [11,    22,    {"k1":    'v1',    "k2":    ["age",    "name"],    "k3":    (11,22,33)},    44])
# a.     讲述元祖的特性
# 元组的元素不可修改,但是元素的元素是可以修改的
# b.     请问 tu 变量中的第一个元素 “alex” 是否可被修改?
# 元组不可被修改,但是'alex'字符串可以被修改,不是真正意义上的修改,而是创建了一个新的字符串
# c.     请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
#列表类型,列表可以修改,但是元组本身不可以被修改

# 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 k in dic.keys():
#     print(k)
# b.     请循环输出所有的 valuec.
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# for v in dic.values():
#     print(v)
# c      请循环输出所有的 key 和 value
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# for k,v in dic.items():
#     print(k,v)
# d.     请在字典中添加一个键值对, "k4":    "v4",输出添加后的字典
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# dic['k4']='v4'
# print(dic)
# e.     请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# dic['k1']='alex'
# print(dic)
# f.     请在 k3 对应的值中追加一个元素 44,输出修改后的字典
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# dic['k3'].append('44')
# print(dic)
# g.     请在 k3 对应的值的第 1     个位置插入个元素 18,输出修改后的字典
# dic    =    {'k1':    "v1",    "k2":    "v2",    "k3":    [11,22,33]}
# dic['k3'].insert(0,'18')
# print(dic)
#-----------------------------------------------------------------------------------------------------------------------
# 27、转换
# a.     将字符串 s    =    "alex"     转换成列表
# s='alex'
# print(list(s))
# b.     将字符串 s    =    "alex"     转换成元祖
# s='alex'
# print(tuple(s))
# b.     将列表 li    =    ["alex",    "seven"]     转换成元组
# li    =    ["alex",    "seven"]
# print(tuple(li))
# c.     将元祖 tu    =    ('Alex',    "seven")     转换成列表
# tu    =    ('Alex',    "seven")
# print(list(tu))
# d.     将列表 li    =    ["alex",    "seven"]     转换成字典且字典的 key 按照 10     开始向后递增
# li = ["alex","seven"]
# dic = {}
# for i,v in enumerate(li,10):
#     dic.setdefault(i,v)
#     print(dic)
#-----------------------------------------------------------------------------------------------------------------------
# 28、求 1-100 内的所有数的和
# su=0
# for i in range(1,101):
#     su+=i
# print(su)
#-----------------------------------------------------------------------------------------------------------------------
# 29、元素分类
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66     的值保存至字典的第一个 key 中,将小于 66     的值保存至第二个 key 的值中。
# 即: {'k1':     大于 66 的所有值,    'k2':     小于 66 的所有值}
# l=[11,22,33,44,55,66,77,88,99,90]
# dic={'k1':[],
#     'k2':[]}
# for i in l:
#     if i>66:
#         dic['k1'].append(i)
#     else:
#         dic['k2'].append(i)
# print(dic)
# l=[11,22,33,44,55,66,77,88,99,90]
# dic={'k1':[],
#      'k2':[]}
# for i in l:
#     if i<66:
#         dic['k1'].append(i)
#     else:
#         dic['k2'].append(i)
# print(dic)

#-----------------------------------------------------------------------------------------------------------------------
# 30、购物车
# 功能要求:
# 要求用户输入总资产,例如: 2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

# goods = [
# {"name": "电脑", "price": 1999},
# {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998},
# ]
# buyCar=[]
# money=0
# flag=True
# while flag:
#     temp=input("请输入总资产:")
#     if len(temp)==0 or not temp.isdigit():continue
#     money+=int(temp)
#     while flag:
#         for item in range(len(goods)):
#              print(item,goods[item])
#         psn=input("请输入要购购买的商品序号")
#         if len(psn)==0 or not psn.isdigit() or int(psn)>len(goods):continue
#         if goods[int(psn)]["price"]>money:
#             print("帐户余额不足,请充值后再购买")
#             break
#         buyCar.append(goods[int(psn)])
#         money-=goods[int(psn)]["price"]
#         print("购买成功,您购买的商品有",buyCar)
#         break
#     break
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
buycar=0
money=0
flag=True
while flag:
    temp =input('请输入总资产')
    if len(temp)==0 or not temp.isdigit():continue
    money+=int(temp)
    while flag:
        for item in range(len(goods)):
            print(item.goods[item])
        psn=input('请输入要购买的商品序列号')
        if len(psn)==0 or not psn.isdigit() or int(pan)>len(goods):continue
        if goods[int(pan)]['price']>money:
            print('请充值后再次购买')
            break
        buycar.append(goods[int(psn)])
        money=goods[int(psn)]['price']
        print('购买成功,您购买的商品有',buycar)
        break
    break

 

posted @ 2018-01-21 12:11  前方、有光  阅读(629)  评论(0编辑  收藏  举报