1.尝试实现一个管理系统
=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
k = {'ma':156,'cheng':159,'zhao':155,'fan':178} while 1 : u = int(input('''请输入你要选择的功能 1.添加联系人(手机) 2.删除联系人 3.修改联系人的手机号码 4.查询所有用户 5.根据姓名查找手机号 6.退出 请输入:''')) print() if u < 1 or u > 6 : print() print('**********************************') print('您输入的选项不合法,请重新输入') print('**********************************') print() continue elif u == 1 : name_add = input('请输入姓名:') print() if name_add in k : print('**********************************') print('您添加的联系人已存在') print('**********************************') print() continue else : phone_add = input('请输入他的手机号:') k[name_add]=phone_add print() print('**********************************') print('已完成添加') print('**********************************') print() continue elif u == 2 : name_del = input('请输入您要删除的联系人:') print() if name_del in k : a = input('您真的要删除{}( yes or no ):'.format(name_del)) print() if a == 'yes' or a == 'no' : if a == 'yes' : k.pop(name_del) print() print('**********************************') print('已完成删除') print('**********************************') print() continue elif a == 'no' : print('**********************************') print('已取消删除') print('**********************************') print() continue else : print('**********************************') print('输入不合法') print('**********************************') print() continue else : print('**********************************') print('您要删除的联系人不存在') print('**********************************') print() continue elif u == 3 : name_change = input('请输入要修改的联系人:') print() if name_change in k : phone_change = input('请输入要修改的手机号码:') k[name_change] = phone_change print() print('**********************************') print('已完成修改') print('**********************************') print() continue elif u == 4 : for i in k.items() : print(i) print() continue elif u == 5 : name_find = input('请输入您要查找的联系人:') print() if name_find in k : print('他的手机号是{}'.format(k.get(name_find))) print() continue else : print('**********************************') print('您输入的联系人不存在') print('**********************************') print() continue elif u == 6 : print('**********************************') print('欢迎你再次使用~~ 再见!!') print('**********************************') print() break
2.随机产生密码:
在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码
import random for u in range(10) : s = '' mima = ['Q','W','E','R','T','Y','U','I','O','P',\ 'A','S','D','F','G','H','J','K','L','Z','X','C','V','B',\ 'N','M','q','w','e','r','t','y','u','i','o','p','a',\ 's','d','f','g','h','j','k','l','z','x','c','v','b','n',\ 'm','1','2','3','4','5','6','7','8','9','0'] for i in range(8) : a = random.choice(mima) s += a print('随机产生第{}个的密码是:{}'.format(u+1,s))
3.通过代码实现如下转换:
二进制转换成十进制:v = “0b1111011”
十进制转换成二进制:v = 18
八进制转换成十进制:v = “011”
十进制转换成八进制:v = 30
十六进制转换成十进制:v = “0x12”
十进制转换成十六进制:v = 87
print('二进制转换成十进制:v = “0b1111011') print('{}'.format(0b1111011)) print() print('十进制转换成二进制:v = 18') print('{:b}'.format(18)) print('八进制转换成十进制:v = 011') print('{}'.format(0o011)) print() print('十进制转换成八进制:v = 30') print('{:o}'.format(30)) print() print('十六进制转换成十进制:v = “0x12') print('{}'.format(0x12)) print() print('十进制转换成十六进制:v = 87') print('{:x}'.format(87))
4.求结果
v1 = 1 or 3
v2 = 1 and 3
v3 = 0 and 2 and 1
v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4
v6 = 0 or False and 1
答案: v1 = 1 v2 = 3 v3 = 0 v4 = 1 v5 = 1 v6 = False
5.求结果:
a. [ i % 2 for i in range(10) ]
b. ( i % 2 for i in range(10) )
'''
'''
a = [0,1,0,1,0,1,0,1,0,1]
b = [0,1,0,1,0,1,0,1,0,1]
答案: a = [ 1 , 0 , 1 , 0 , 1, 0 , 1 , 0 , 1 , 0 ] b = 1 0 1 0 1 0 1 0 1 0
6.求结果:
a. 1 or 2
b. 1 and 2
c. 1 < (2==2)
d. 1 < 2 == 2
答案: a = 1 b = 2 c = False d = True
7.请写出与 10 < cost < 50 等价的表达式
答案: 10 < cost and cost < 50
8.Python3 中,一行可以书写多个语句吗?
Python3 中,一个语句可以分成多行书写吗?
答案:
一行不可以写多个语句
一条语句可以写多行,用反斜杠 \ 结束本行
9.我们人类思维是习惯于“四舍五入”法,你有什么办法
使得 int() 按照“四舍五入”的方式取整吗?
a = float(input('请输入一个浮点型数')) b = int((a+0.5)//1) print(b)
10.请用最快速度说出答案:
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9
答案:
4
11.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,
若每步上2阶,最后剩1阶;
若每步上3阶,最后剩2阶;
若每步上5阶,最后剩4阶;
若每步上6阶,最后剩5阶;
只有每步上7阶,最后刚好一阶也不剩。
请编程求解该阶梯至少有多少阶?
i = 0 while True : if i%2 == 1 and i%3 == 2 and i%5 == 4 and i%6 == 5 and i%7 == 0 : break else : i += 1 print('至少有%d'%i)
12.假设有 x = 1,y = 2,z = 3,
请问如何快速将三个变量的值互相交换?
x = 1 y = 2 z = 3 x,y,z = y,z,x print(x,y,z)
13.目测以下程序会打印什么?
while True :
while True :
break
print(1)
print(2)
break
else :
print(3)
答案:
2
14.member.append(['竹林小溪', 'Crazy迷恋'])
member.extend(['竹林小溪', 'Crazy迷恋'])
实现的效果一样吗
答案: 不一样,append()函数只能加一个参数,即把“['竹林小溪', 'Crazy迷恋']”看成一个元素添加进去,而extend()函数是在列表后面接上一个列表,所以extend函数里面必须有中括号,可以添加多个元素
15.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18] list1[1][2][0] = '小坏蛋' print(list1)
16.要对一个列表进行顺序排序,请问使用什么方法
#答案: #第一种 l = [153,131,313,541,31,531,213,1] s = [] for i in range(len(l)) : s.append(min(l)) l.remove(min(l)) print(s) #第二种 l = [153,131,313,541,31,531,213,1] l.sort() print(l)
17.要对一个列表进行逆序排序,请问使用什么方法?
#答案: #第一种 l = [1,5,1651,131,31,5313,135,13,351,16531] l.sort() print(l[::-1]) #第二种 l = [1,5,1651,131,31,5313,135,13,351,16531] s = [] for i in range(len(l)) : s.append(max(l)) l.remove(max(l)) print(s) #第三种 l = [1,5,1651,131,31,5313,135,13,351,16531] l.reverse() print(l)
18.什么情况下你需要使用元组而不是列表?
当元组和列表掉下水,你会救谁?
答案:
列表和元组都可以进行成员运算,遍历,切片,求最大值,最小值,成员出现次数计算,列表还可以进行增加,删除,修改,排序,元组不能
先救列表,元组很稳定,不会进水,也不会被水冲散,列表会进水,还会被冲散
19.x, y, z = 1, 2, 3 请问x, y, z是元组吗
答案:
不是,只是三个整型数,只有一个元素的元组后面有“,”
20.编写一个进制转换程序
(提示,十进制转换二进制可以用bin()这个BIF
while True : x = int(input('''请选择您要输入的进制 2.二进制 8.八进制 10.十进制 16.十六进制 0.退出 请输入:''')) print() if x != 2 and x != 8 and x != 10 and x !=16 and x != 0 : print('*****************************') print('输入有误,请重新输入') print('*****************************') print() continue elif x == 0 : print() print('*****************************') print('再见~~欢迎下次使用!!') print('*****************************') break y = int(input('''请选择您要输出的进制 2.二进制 8.八进制 10.十进制 16.十六进制 0.退出 请输入:''')) print() if y != 2 and y != 8 and y != 10 and y !=16 and y != 0 : print('*****************************') print('输入有误,请重新输入') print('*****************************') print() continue if y == 0 : print() print('*****************************') print('再见~~欢迎下次使用!!') print('*****************************') break n = input('请输入您要输入的数') print() if x == 2 : if y == 2 : print('结果:{.b}'.format(bin(int(n,2)))) continue elif y == 8 : print('结果:{}'.format(oct(int(n,2)))) continue elif y == 10 : print('结果:{}'.format(int(n,2))) continue elif y == 16 : print('结果:{}'.format(hex(int(n,2)))) continue elif x == 8 : if y == 2 : print('结果:{}'.format(bin(int(n,8)))) continue elif y == 8 : print('结果:{}'.format(oct(int(n,8)))) continue elif y == 10 : print('结果:{}'.format(int(n,8))) continue elif y == 16 : print('结果:{}'.format(hex(int(n,8)))) continue elif x == 10 : if y == 2 : print('结果:{}'.format(bin(int(n,10)))) continue elif y == 8 : print('结果:{}'.format(oct(int(n,10)))) continue elif y == 10 : print('结果:{}'.format(int(n,10))) continue elif y == 16 : print('结果:{}'.format(hex(int(n,10)))) continue elif x == 16 : if y == 2 : print('结果:{}'.format(bin(int(n,16)))) continue elif y == 8 : print('结果:{}'.format(oct(int(n,16)))) continue elif y == 10 : print('结果:{}'.format(int(n,16))) continue elif y == 16 : print('结果:{}'.format(hex(int(n,16)))) continue
21.我们根据列表、元祖和字符串的共同特点,
把它们三统称为什么?有什么共性
答案: 都是可迭代的数据类型,统称为“序列”,都可以进行成员运算,
切片,s = a+b,s = a*int(n)求最大值,最小值,长度,成员出现次数
22.猜字游戏,随机产生10以内的整型数,可供用户猜,
如果猜对,打印“厉害了!500万属于你”
如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,
如果比随机数小,提示“大胆一点”。用户最多有三次机会
import random a = random.randint(0,10) for i in range(3) : n = int(input('请猜测一个数')) if n == a : print('恭喜你,答对了!!') break elif n > a : print('有点大') elif n < a : print('有点小') if i == 2 : print('游戏结束') break
23.盒子里有3个红球,3个蓝色球,4个黄球,
现刘柱要从盒子里拿出8个球,问有多少种情况
m = 0 for i in range(1,4) : for l in range(1,4) : for k in range(1,5) : if i + l + k == 8 : m += 1 print('红球取{}个,蓝球取{}个,黄球取{}个'.format(i,l,k)) print() print('一共有%d种情况'%m)
24.打印九九乘法表
for i in range (1,10) : for l in range (1,i+1) : m = l*i print('{}*{}={:^2}'.format(l,i,m),end=' ' ) if l == i : print()
25.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,
猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。
输出这堆桃最初有多少个
s = 1 for i in range(10) : s = (1+s)*2 print(s)