第三周周末作业

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)

猜你喜欢

转载自www.cnblogs.com/mabaohua/p/10097339.html