5. 尝试实现一个管理系统
=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
1 dic = {} 2 while True: 3 print('=======通讯录管理系统=======') 4 print('1.增加姓名和手机') 5 print('2.删除姓名') 6 print('3.修改手机') 7 print('4.查询所有用户') 8 print('5.根据姓名查找手机号') 9 print('6.退出') 10 print('============================') 11 b = int(input('请输入你的选项: ')) 12 if b == 1: 13 c = input('请输入你想添加的姓名:') 14 d = input('请输入手机号:') 15 dic [c]= d 16 17 if b == 2: 18 c = input('请输入你要输出的姓名:') 19 dic.pop(c) 20 if b == 3: 21 c = input('请输入你要修改手机号的姓名:') 22 d = input('请输入手机号:') 23 dic[c]= d 24 if b == 4: 25 for i in dic: 26 print(i) 27 if b == 5: 28 c = input('请输入你要查找的姓名:') 29 print('{}的手机号是{}'.format(c,dic[c])) 30 if b == 6: 31 break
5. 随机产生密码:
在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码
1 import random 2 b = list(range(65,91))+list(range(97,123))+list(range(10)) 3 print(b) 4 for i in range(10): 5 list1=[] 6 for y in range(8): 7 c = random.choice(b) 8 if c > 10: 9 list1.append(chr(c)) 10 else: 11 list1.append(c) 12 print(list1) ~
1.通过代码实现如下转换:
• 二进制转换成十进制:v = “0b1111011”
• 十进制转换成二进制:v = 18
• 八进制转换成十进制:v = “011”
• 十进制转换成八进制:v = 30
• 十六进制转换成十进制:v = “0x12”
• 十进制转换成十六进制:v = 87
1 print(int('0b1111011',2)) 2 print('{:b}'.format(18)) 3 print(int('0o011',8)) 4 print('{:o}'.format(30)) 5 print(int('0x12',16)) 6 print('{:x}'.format(87))
3.求结果
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 Flase and 1
v1 结果为 1
v2 结果为 3
v3 结果为 0
v4 结果为 1
v5 结果为 1
v6 结果为 Flase
7.求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )
1 print([(i % 2) for i in range(10)]) 2 g = (i % 2 for i in range(10)) 3 print(g) 4 for i in g: 5 print(i,end=' ') 6 print()
8.求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2
a. 1 b.2 c.False d.True
1.请写出与 10 < cost < 50 等价的表达式
cost > 10 and cost < 50
2.Python3 中,一行可以书写多个语句吗?
Python3 中,一个语句可以分成多行书写吗
1 ''' 2 python3 中可以一行书写多个语句,需要在每句后面加一个分号。也可以一个语句分成多行写 3 ,需要在每行结束时加个/来续行 4 ''' 5 print('a');print('b') 6 a = ['a','b', 7 'c','d'] 8 print(a) 9 10
3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗
1 b = float(input('请输入一个数: ')) 2 print(int(b + 0.5))
4.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9
答案:4
5.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶?
1 y = 0 2 while True: 3 4 if y % 2 == 1 and y % 3 == 2 and y % 5 == 4 5 and y % 6 == 5 and y % 7 == 0: 6 print(y) 7 break 8 else: 9 y = y + 1 10
运行结果:119
6.假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换
1 x = 1 2 y = 2 3 z = 3 4 x ,y ,z = z, x, y 5 print(x,y,z) 6 7 #想将哪个变量的值赋值给谁直接赋值即可
7.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
else:
print(3)
答:2,因为程序从上向下运行,遇到第一个break,所以不会打印1;打印2后break跳出整个循环。
8.member.append(['竹林小溪', 'Crazy迷恋']) 和member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?
1 2 member = [] 3 member.append(['1竹木小溪','1Crazy迷恋']) 4 print(member) 5 member.extend(['2竹木小溪','2Crazy迷恋']) 6 print(member) 7 8 #用法结果看出不一样,append是将括号内的全部插入给列表,而extend是将[]里的内容插入新 列表 ~
9.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
1 list1 = [1,[2,['小笨蛋']],3,5,8,13,18] 2 3 list1[1][1]=['小坏蛋'] 4 print(list1)
10.要对一个列表进行顺序排序,请问使用什么方法?
11.要对一个列表进行逆序排序,请问使用什么方法?
1 #sort顺序排序,sort(reverse=True)反向排序 2 a = [5,7,6,9,2] 3 a.sort() 4 print(a) 5 a.sort(reverse=True) 6 print(a)
12.什么情况下你需要使用元组而不是列表?
当元组和列表掉下水,你会救谁?
答:当需要保存的数据不被轻易修改时,用元祖
当需要保存的数据需要频繁更改时,就用列表。
谁也不救,不会游泳
13.x, y, z = 1, 2, 3 请问x, y, z是元组吗
答:不是,x,y,z是变量,能被更改
14.编写一个进制转换程序(提示,十进制转换二进制可以用bin()这个BIF):
1 while True: 2 print('请输入你想转化进制的数') 3 a = int(input('')) 4 print('你想把这个数由a进制转成b进制:') 5 x,y = eval(input()) 6 if x == 10: 7 if y == 2: 8 print('{:b}'.format(a)) 9 elif y == 8: 10 print('{:o}'.format(a)) 11 elif y == 16: 12 print('{:x}'.format(a)) 13 elif x == 2: 14 a = '0b' + str(a) 15 a = int(a,2) 16 if y == 10: 17 print(a) 18 elif y == 8: 19 20 print('{:o}'.format(a)) 21 elif y == 16: 22 23 print('{:x}'.format(a)) 24 elif x == 8: 25 a = '0o'+ str(a) 26 a = int(a,8) 27 if y == 10: 28 print(a) 29 elif y == 2: 30 print('{:b}'.format(a)) 31 elif y == 16: 32 print('{:x}'.format(a)) 33 elif x == 16: 34 a = '0x' + str(a) 35 a = int(a,16) 36 if y == 10: 37 print(a) 38 elif y == 2: 39 print('{:b}'.format(a)) 40 elif y == 8: 41 print('{:o}'.format(a)) 42 43 else: 44 print('输入的无效') 45 break ~
15.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性
答:列表,元组,字符串都能被算出长度,都是有序的所以也就都有索引值,能够根据索引查找索引值对应的内容。也能够根据index函数找到相应能容的索引值,count函数计算出某个值在当中出现的次数,他们三个统称为序列。都能存储一串内容。
17.编写一个函数满足以下功能:
计算打印所有参数的和乘以基数(base=3)的结果
1 #函数里的参数可以随意输入多个: 2 def cj(*nums): 3 sum1 = 0 4 for i in nums: 5 sum1 += i 6 return sum1 7 8 print(cj(1,2,3))
输出结果为 6
18.猜字游戏,随机产生10以内的整型数,可供用户猜,如果猜对,打印“厉害了!500万属于你”,如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,如果比随机数小,提示“大胆一点”。用户最多有三次机会
1 import random 2 print('猜字游戏') 3 a = random.randrange(0,10) 4 for i in range(3): 5 b = int(input('请输入你猜的数:')) 6 if a == b: 7 print('厉害了!500万属于你') 8 break 9 elif b > a: 10 print('大了,再给你一次机会') 11 continue 12 elif b < a: 13 print('大胆一点') 14 elif i == 2: 15 print('你输了')
19.盒子里有3个红球,3个蓝色球,4个黄球,现刘柱要从盒子里拿出8个球,问有多少种情况
1 sum1 = 0 2 for i in range(1,4): 3 for y in range(1,4): 4 for z in range(1,5): 5 if i + y + z == 8: 6 sum1 += 1 7 else: 8 continue 9 print(sum1) 10
输出答案为6种
20.打印9 9乘法表
1 for x in range(1,10): 2 for y in range(1,x+1): 3 print('{}*{}={}'.format(x,y,x*y),end=' ') 4 print()
21.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。输出这堆桃最初有多少个。
1 a = 1 2 for i in range(10): 3 a = (a + 1) * 2 4 5 print(a)
运行结果是3070