5. 尝试实现一个管理系统
=======通讯录管理系统=======
1.增加姓名和手机2.删除姓名3.修改手机4.查询所有用户5.根据姓名查找手机号6.退出============================1 dict = {} 2 while True: 3 4 n = int(input(''' 5 ========通讯录管理系统======== 6 1.增加姓名和手机 7 2.删除姓名 8 3.修改手机 9 4.查询所有用户 10 5.根据姓名查找手机号 11 6.退出 12 ============================== 13 请输入选项:''')) 14 15 if n == 1: 16 s = input('输入姓名:') 17 l = int(input('输入手机号:')) 18 dict[s]=l 19 print('成功存入') 20 if n == 2: 21 s1 = input('输入要删除的姓名:') 22 dict.pop(s1) 23 print('删除成功:') 24 if n == 3: 25 s2 = input('选择要修改的姓名:') 26 m = int(input('输入修改后的手机:')) 27 dict[s2]= m 28 print('修改成功') 29 if n == 4: 30 print(dict) 31 if n == 5: 32 s3 = input('输入要查询手机号的姓名:') 33 print(dict[s3]) 34 print('查询成功') 35 if n == 6: 36 break
5. 随机产生密码:
在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码
1 import random 2 3 for i in range(10): 4 s = '' 5 for j in range(8): 6 ch = ['lo','nu','ca'] 7 word = random.choice(ch) 8 if word == 'lo': 9 m = random.randint(ord('A'),ord('Z')) 10 s += str(chr(m)) 11 if word == 'ca': 12 m = random.randint(ord('a'),ord('z')) 13 s += str(chr(m)) 14 if word == 'nu': 15 m = random.randrange(0,10) 16 s += str(m) 17 print(s)
1.通过代码实现如下转换:
• 二进制转换成十进制:v = “0b1111011”
• 十进制转换成二进制:v = 18
• 八进制转换成十进制:v = “011”
• 十进制转换成八进制:v = 30
• 十六进制转换成十进制:v = “0x12”
• 十进制转换成十六进制:v = 87
1 print('v = 0b1111011') 2 v = 0b1111011 3 print(int(v)) 4 5 print('v = 18') 6 v = 18 7 print(bin(v)) 8 9 print('v = 0o11') 10 v = 0o11 11 print(int(v)) 12 13 print('v = 30') 14 v = 30 15 print(oct(v)) 16 17 print('v = 0x12') 18 v = 0x12 19 print(int(0x12)) 20 21 print('v = 87') 22 v = 87 23 print(hex(v))
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
1 3 0 1 1 False
7.求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )
a.列表内10以内的数对2取余,b.生成器内10以内的数对2取余、节省空间用。
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 等价的表达式
for cost in range(11,50)
2.Python3 中,一行可以书写多个语句吗?Python3 中,一个语句可以分成多行书写吗?
都不可以
3.3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
int(n +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 n = 1 2 while n > 0: 3 if n % 2 == 1 and n % 3 == 2 and n % 5 == 4 and n % 6 == 5 and n % 7 == 0: 4 print(n) 5 n = 0 6 else: 7 n += 1
6.假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
1 print('x = 1,y = 2,z = 3') 2 x = 1 3 y = 2 4 z = 3 5 z,x,y = x,y,z 6 print('x = {},y = {},z = {}'.format(x,y,z)) 7 y,z,x = z,x,y 8 print('x = {},y = {},z = {}'.format(x,y,z))
7.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
else:
print(3)
28.member.append(['竹林小溪', 'Crazy迷恋']) 和member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?
member.append()添加的是列表;member.extend([])添加的是列表内的元素
9.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
1 list1 = [1,[1,2,['小笨蛋'],3,5,8,13,18]] 2 print(list1) 3 list1[1][2]=['小坏蛋'] 4 print(list1)
10.要对一个列表进行顺序排序,请问使用什么方法?
l.sort()11.要对一个列表进行逆序排序,请问使用什么方法?l.sort(revserse = True)
12.什么情况下你需要使用元组而不是列表?
当元组和列表掉下水,你会救谁?序列不可变时候。救元组,列表内可添加‘救生衣’,元组不可添加。
13.x, y, z = 1, 2, 3 请问x, y, z是元组吗
不是,没有定义x,y,z的类型
14.编写一个进制转换程序(提示,十进制转换二进制可以用bin()这个BIF):
1 while True: 2 print('************************') 3 print('''1.二进制 4 2.八进制 5 3.十六进制 6 4.十进制 7 5.结束''') 8 y = int(input('请选择你输入的数字的进制:')) 9 if y>= 5: 10 break 11 n = str(input('请输入整型数:')) 12 if y == 1: 13 v = int(n,2) 14 if y == 2: 15 v = int(n,8) 16 if y == 3: 17 v = int(n,16) 18 if y == 4: 19 v = int(n) 20 while True: 21 print('***************************') 22 print('''1.转换为二进制 23 2.转换为八进制 24 3.转换为十六进制 25 4.转换为十进制 26 5.结束操作''') 27 x = int(input('请选择进行的操作:')) 28 if x == 1: 29 m = bin(v) 30 print(m) 31 if x == 2: 32 m = oct(v) 33 print(m) 34 if x == 3: 35 m = hex(v) 36 print(m) 37 if x == 4: 38 m = int(v) 39 print(m) 40 if x >= 5: 41 break
15.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性
序列。都可以索引,切片,遍历,in,not in,max(),min(),l.index()查看元素位置,l.count()查看元素个数
16.请问这个函数有多少个参数?
def MyFun((x,y), (a, b)):
return x * y - a * b
两个 (x,y)和(a,b)
18.猜字游戏,随机产生10以内的整型数,可供用户猜,如果猜对,打印“厉害了!500万属于你”,如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,如果比随机数小,提示“大胆一点”。用户最多有三次机会
1 import random 2 3 n = random.randrange(10) 4 m = int(input('请输入10以内的整型数:')) 5 for i in range(3): 6 if n == m: 7 print('厉害了!500万属于你') 8 break 9 elif n > m: 10 if i == 2: 11 print('很遗憾') 12 break 13 else: 14 print('大胆一点') 15 m = int(input('请再次输入:')) 16 else: 17 if i == 2: 18 print('很遗憾') 19 break 20 else: 21 print('大了,再给你次机会') 22 m = int(input('请再次输入:'))
19.盒子里有3个红球,3个蓝色球,4个黄球,现刘柱要从盒子里拿出8个球,问有多少种情况
1 n = 0 2 for red in range(1,4): 3 for blue in range(1,4): 4 for yellow in range(1,5): 5 if red + blue + yellow == 8: 6 n += 1 7 print(n)
20.打印9 9乘法表
1 for i in range(1,10): 2 for j in range(1,i+1): 3 n = i * j 4 print('{}*{} = {:<2}'.format(i,j,n),end = ' ') 5 print( )
21.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。输出这堆桃最初有多少个。
1 n = 1 2 for i in range(10): 3 n = (n + 1) * 2 4 print(n)