# #!/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