周六日作业

5. 尝试实现一个管理系统

=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出

p = {}
print('''=======通讯录管理系统=======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
============================''')
while True:
    job = int(input("请输入您的要求:"))
    if job == 1:
        name_add = input("请输入姓名:")
        tel_add = input("输入手机号码:")
        p[name_add]= tel_add
        print('增加成功')
        continue
    elif job == 2:
        name_del = input('请输入你要删除的联系人:')
        p.pop(name_del)
        print('删除成功')
        continue
    elif job == 3:
        name_change = input ("请输入要修改的联系人:")
        if name_change in p:
            tel_change = input("输入新的手机号码:")
            k[name_change] = tel_change
            print('修改成功')
            continue
        else:
            print("联系人不存在")
            continue
    elif job == 4:
        input("查询所有联系人为:")
        print(p)
        continue
    elif job == 5:
        name_find = ('请输入你要查询的联系人:')
        if name_find in p:
            print("手机号码为:{}".format(p.get(name_find)))
            continue
    elif job == 6:
        print("退出")
        break

5. 随机产生密码:

在26个大小写字母和10个数字组成的列表中,随机生成10个8位密码

import random
s = []
for i in range(10):
    s.append(str(i))
for i in range(ord('a'),ord('z')+1):
    s.append(chr(i))
for i in range(ord('A'),ord('Z')+1):
    s.append(chr(i))
for i in range(10):
    c = []
    for i in range(8):
        c+=random.choice(s)
    print(c)

1.通过代码实现如下转换:

 二进制转换成十进制:v = “0b1111011”

print(int('0b1111011',2))   123

 十进制转换成二进制:v = 18

print(bin(int('18',10)))    ob10010

 八进制转换成十进制:v = “011” 

print(int('011',8))       9   

 十进制转换成八进制:v = 30 

print(oct(int('30',10)))    0o36 

 十六进制转换成十进制:v = “0x12” 

print(int('0x12',16))        18

 十进制转换成十六进制:v = 87

print(hex(int('87',10)))      0x57

  

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 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

print(v1,v2,v3,v4,v5,v6)
1   3    0    1     1    false

  

7.求结果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
形成一个生成器 , 遍历后得到的值为

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

  

8.求结果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2

 a = True    b  =  True    c = false   d = True

1.请写出与 10 < cost < 50 等价的表达式

cost < 10 and cost < 50

2.Python3 中,一行可以书写多个语句吗?       可以
Python3 中,一个语句可以分成多行书写吗?       可以,用\回车换行

3.我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

s =float(input('请输入一个数'))
s = s + 0.5
print(int(s))

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阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶?

i = 7
while True:
    if (i % 2 == 1) and (i % 3 == 2) and (i % 5 == 4) and (i % 6 == 5) and (i % 7 ==0):
        print(i)
        break
    i += 7
i = 119

  

6.假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

x=1
y=2
z=3
x,y,z = z,x,y
print(x,y,z)

 7.目测以下程序会打印什么?

   while True:

        while True:

            break

            print(1)

        print(2)

        break

   else:

        print(3)

2

  

8.member.append(['竹林小溪', 'Crazy迷恋']) 和member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?

不一样

[['竹林小溪', 'Crazy迷恋']]

['竹林小溪', 'Crazy迷恋']

9.请问如何将下边这个列表的'小笨蛋'修改为'小坏蛋'?

  list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]

import copy
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
list1[1][2] = ['小坏蛋']
print(list1)

10.要对一个列表进行顺序排序,请问使用什么方法?

sort()

sorted()

11.要对一个列表进行逆序排序,请问使用什么方法?

sort(reverse =True)

reversed()

12.什么情况下你需要使用元组而不是列表?

当希望内容不被轻易改写的时候,使用元组。当需要频繁修改数据,使用列表。

  当元组和列表掉下水,你会救谁?

我会救列表,因为列表提供了比元组更丰富的内置方法,这相当大的提高了编程的灵活性。回头来看下元组,元组固然安全,但元组一定创建就无法修改(除非通过新建一个元组来间接修改,但这就带来了消耗),而我们人是经常摇摆不定的,所以元组只有在特殊的情况才用到,平时还是列表用的多。综上所述,我会救列表

13.x, y, z = 1, 2, 3 请问x, y, z是元组吗

答: 所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组

14.编写一个进制转换程序(提示,十进制转换二进制可以用bin()这个BIF):

print('============ 进制转换系统 ============')

num = int(input('(十进制转其他):'))
print('-------------- 开始 --------------')
print( '10进制 -> 16进制:', '0x%x' % ( num) )
print( '10进制 ->  8进制:', '0o%o' % ( num) )
print( '10进制 ->  2进制:',  bin(num) )


num = input('(二进制转其他):') 
print('2 -> 8:',oct(int(num,2)))
print('2 -> 10:',int(num,2))
print('2 -> 16:',hex(int(num,2)))

num = input('(八进制转其他):')
print('8 -> 2:',bin(int(num,8)))
print('8 -> 10:',int(num,8))
print('8 -> 16:',hex(int(num,8)))

num = input('(十六进制转其他):')
print('16 -> 2:',bin(int(num,16)))
print('16 -> 10:',int(num,16))
print('16 -> 8:',oct(int(num,16)))

print('-------------- 结束 -------------')

15.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性

统称为序列。
共性: 都可以通过索引得到每一个元素
         默认索引值总是从0开始
         可以通过分片的方法得到一个范围内的元素的集合
         有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)

18.猜字游戏,随机产生10以内的整型数,可供用户猜,如果猜对,打印“厉害了!500万属于你”,如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,如果比随机数小,提示“大胆一点”。用户最多有三次机会

import random
n = random.randint(0,10)
for i in range(3):



    s = int(input('请输入您要猜的数字:'))
    if s == n:
        print('厉害了!500万属于你')
        break
    elif s < n:
        print('大胆一点')
        continue
    else:
        print('大了,再给你一次机会')
        continue
        
else:
    print('您只有三次机会,机会已经用完,欢迎下次再来')

19.盒子里有3个红球,3个蓝色球,4个黄球,现刘柱要从盒子里拿出8个球,问有多少种情况

count = 0
for x in range(1,4):
    for y in range(1,4):
        for z in range(1,5):
            if x+y+z == 8:
                count += 1
print(count)

20.打印9 9乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={}'.format(j,i,i*j),end = ' ')
    print('  ')

21.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。输出这堆桃最初有多少个。

count = 1
for i in range(10):
    count = (count+1)*2
print(count)
 

18.猜字游戏,随机产生10以内的整型数,可供用户猜,如果猜对,打印“厉害了!500万属于你”,如果猜错,如果比随机数大,提示,“大了,再给你一次机会”,如果比随机数小,提示“大胆一点”。用户最多有三次机会

import random
n = random.randint(0,10)
for i in range(3):



    s = int(input('请输入您要猜的数字:'))
    if s == n:
        print('厉害了!500万属于你')
        break
    elif s < n:
        print('大胆一点')
        continue
    else:
        print('大了,再给你一次机会')
        continue
        
else:
    print('您只有三次机会,机会已经用完,欢迎下次再来')

19.盒子里有3个红球,3个蓝色球,4个黄球,现刘柱要从盒子里拿出8个球,问有多少种情况

count = 0
for x in range(1,4):
    for y in range(1,4):
        for z in range(1,5):
            if x+y+z == 8:
                count += 1
print(count)

20.打印9 9乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={}'.format(j,i,i*j),end = ' ')
    print('  ')

21.猴子得到一堆桃,当天吃了一半之后,又多吃了1个。以后每天,猴子都吃了剩余的一半桃子之后,又多吃一个。在第10天,只剩下1个桃子。输出这堆桃最初有多少个。

count = 1
for i in range(10):
    count = (count+1)*2
print(count)

猜你喜欢

转载自www.cnblogs.com/wzy-123/p/10084126.html