1. 尝试实现一个管理系统
=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
s='通讯录管理系统' s=s.center(22,'=') print(s) l = {} print('1.增加姓名和手机') print('2.删除姓名') print('3.修改手机') print('4.查询所有用户') print('5.根据姓名查找手机号') print('6.退出') while True: c = int(input('请选择要执行的选项:')) if c == 1: name = input('输入姓名:') l[name] = input('输入手机:') if c == 2: name = input('输入姓名:') d.pop(name) if c == 3: name=input('输入姓名:') num = input('输入新手机号:') l[name] = num print(l[name]) if c == 4: for n in l.keys(): print(l) if c == 5: name = input('请输入要查找的姓名:') print(l[name]) if c == 6: print('退出') break
2. 随机产生密码:
在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码
import random s="abcdefghijklmnopqrstuvwxyz0123456789" ls = [] FirstPsw= "" while len(ls)<8: pwd = "" for i in range(10): pwd +=s[random.randint(0,len(s)-1)] if pwd[0] in FirstPsw: continue else: ls.append(pwd) FirstPsw +=pwd[0] print(ls)
3.通过代码实现如下转换:
? 二进制转换成十进制:v = “0b1111011”
? 十进制转换成二进制:v = 18
? 八进制转换成十进制:v = “011”
? 十进制转换成八进制:v = 30
? 十六进制转换成十进制:v = “0x12”
? 十进制转换成十六进制:v = 87
v =0b1111011 print(int(v)) '十进制转换成二进制' v = 18 print(bin(int(v))) '八进制转换成十进制:' v ='011' print(int(v,8)) '十进制转换成八进制:' v ='30' print(oct(int(v,10))) '十六进制转换成十进制' v ='0x12' print(int(v,16)) '十进制转换成十六进制' v ='87' print(int(v,16))
4.
v1 = 1 or 3 1
v2 = 1 and 3 3
v3 = 0 and 2 and 1 0
v4 = 0 and 2 or 1 1
v5 = 0 and 2 or 1 or 4 1
v6 = 0 or Flase and 1 Flase
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=<generator object <genexpr> at 0x0000000002B35410>
6.求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2
a=1
b=2
c=Flase
d=Flase
7. 请写出与 10 < cost < 50 等价的表达式
cost>10 and cost<50
Python3 中,一行可以书写多个语句吗?
可以
Python3 中,一个语句可以分成多行书写吗?
可以。如果有括号(小括号、中括号、大括号),可以在任意地方断行。如果没有,需要在断开的地方添加 字符,表示这一行尚未结束。
8.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
s=eval(input('小数:')) a=int(s+0.5) print(a)
9.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9
4
10.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶?
l=[] for i in range(1000): if i % 2==1 and i % 3 ==2 and i % 5 == 4 and i % 6 == 5 and i % 7 == 0: l.append(i) print('至少有{}阶'.format(min(l)))
11.假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
x=1 y=2 z=3 x,y,z=z,x,y x,y,z=y,z,x x,y,z=y,x,z print(x,y,z)
12.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
else:
print(3)
输出结果是2
13.member.append(['竹林小溪', 'Crazy迷恋']) 和member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?
不一样
Append加入的是一个列表
Extended加入的是一个值
14.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18] list1[1][2]='小坏蛋' print(list1)
15.要对一个列表进行顺序排序,请问使用什么方法?要对一个列表进行逆序排序,请问使用什么方法?
l = [1,3, 9, 8, 13, 18,5] l.sort(reverse=True) print(l)
16.什么情况下你需要使用元组而不是列表?当元组和列表掉下水,你会救谁?
不希望元素被修改的时候用元组,会选择列表,因为功能强大。
17.x, y, z = 1, 2, 3 请问x, y, z是元组吗?
不是,所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组
18.
编写一个进制转换程序(提示,十进制转换二进制可以用bin()这个BIF)
1.十进制转换其他进制(1.二进制 2.八进制 3.十六进制)
2.二进制转换其他进制(1.八进制 2.十进制 3.十六进制)
3.八进制转换其他进制(1.二进制 2.十进制 3.十六进制)
4.十六进制转换其他进制(1.二进制 2.八进制 3.十进制)
n = int(input("请输入你要选择的功能编号")) while True: if n == 1: m = int(input("请输入你要选择的功能编号")) if m ==1: num = int(input("请输入一个数:")) print(bin(num)) break if m ==2: num = int(input("请输入一个数:")) print(oct(num)) break if m ==3: num = int(input("请输入一个数:")) print(hex(num)) break break if n == 2: m = int(input("请输入你要选择的功能编号")) if m ==1: num = input("请输入一个数:") print(oct(int(num,2))) break if m ==2: num = input("请输入一个数:") print(int(num,2)) break if m ==3: num = input("请输入一个数:") print(hex(int(num,2))) break break if n == 3: m = int(input("请输入你要选择的功能编号")) if m ==1: num = input("请输入一个数:") print(bin(int(num,8))) break if m ==2: num = input("请输入一个数:") print(int(num,8)) break if m ==3: num = input("请输入一个数:") print(hex(int(num,8))) break break if n == 4: m = int(input("请输入你要选择的功能编号")) if m ==1: num = input("请输入一个数:") print(bin(int(num,16))) break if m ==2: num = input("请输入一个数:") print(oct(int(num,16))) break if m ==3: num = input("请输入一个数:") print(int(num,16)) break break
19.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性
序列
可以通过索引找到每一个元素,索引值都是行0开始,可以通过切片方法求得一个范围内的元素集合,有相同的运算符(成员,加乘,重复操作)
20.猜字游戏,随机产生10以内的整型数,可供用户猜,如果猜对,打印“厉害了!500万属于你”,如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,如果比随机数小,提示“大胆一点”。用户最多有三次机会
import random n=random.randint(0,9) #print(n) for i in range(3): m=int(input('输入一个10以内的数:')) if m<n: print('大胆一点') elif m>n: print('大了,再给你一次机会') else: print('厉害了!500万属于你') break i +=1
21.打印9 9乘法表
for i in range(1,10): for j in range(1,i+1): print('{}*{}={}'.format(i,j,i*j) ,end=' ') print()
22.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。输出这堆桃最初有多少个?
n=1 for i in range(1,10): n = (n+1)*2 print('最初有{}个'.format(n))