张拽拽

导航

假期小作业1

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

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

p = {}
print("====通讯录管理系统===")
print("1.增加姓名和手机")
print("2.删除姓名")
print("3.修改手机号")
print("4.查询所有用户")
print("5.根据姓名查找手机号")
print("6.退出")
print("=====================")
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

2.随机产生密码:

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

import random
l = []
a = 0 
for i in range(ord('a'),ord('z')+1):
    l.append(chr(i))
for j in range(ord('A'),ord('Z')+1):
    l.append(chr(j))
for m in range(0,10):
    l.append(str(m))
while a < 11: 
    a += 1
    li = []
    for n in range(8):
        s = random.choice(l)
        li += s
    print(li)

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

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

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

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

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

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

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

print(int('0b1111011',2))
print(bin(18))
print(int("011",8))
print(oct(30))
print(int('0x12',16))
print(hex(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 Flase 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.生成器(next())
s =  [ i % 2 for i in range(10) ] 
print(s)
l = ( i % 2 for i in range(10) )
print(l) 

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 中,一个语句可以分成多行书写吗?

  可以:生成式

  可以:\n

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

a = float(input('一个数:'))
print (int(a + 0.5))

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

n = 0 
while True:
    if n % 2 == 1 and n % 3 == 2 and n % 5 == 4 and n % 6 == 5 and  n % 7 == 0:
        print('至少有%d个台阶。'% n)
        break
    else:
        n += 1

   

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

x = 1 
y = 2 
z = 3 
x,y,z = z,x,y
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是属于把整组列表加入到列表中

  extend是属于把元素一个一个的加入到列表中

15.

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

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

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

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

n.sort()

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

n.sort(reverse = True)

18.什么情况下你需要使用元组而不是列表?当元组和列表掉下水,你会救谁?

  序列不可以改变的时候

  救列表,列表可以实现更多功能

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

  不是,属于给x,y,z赋值1,2,3

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

a = input('请输入一个数:')
b,c = eval(input('某进制转某进制:'))
if b == 2:
    if c == 10:
        print(int(a,2))
    elif c == 8:
        d = int(a,2)
        print(oct(d))
    elif c == 16:
        e = int(a,2)
        print(hex(e))
elif b == 10:
    a =int(a)
    if c == 2:
        print(bin(a))
    elif c == 8:
        print(oct(a))
    elif c == 16:
        print(hex(a))
elif b == 8:
    if c == 10:
        print(int(a,8))
    elif c == 2:
        f = int(a,8)
        print(bin(f))
    elif c == 16:
        g = int(a,8)
        print(hex(g))
elif b == 16:
    if c == 10:
        print(int(a,16))
    elif c == 8:
        h = int(a,16)
        print(oct(h))
    elif c == 2:
        i = int(a,16)
        print(hex(i))

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

  统称为序列

  都可以遍历,切片,in/not in/+/*(整型数) ,len()/max()/min()/s.index()/s.count()

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

import random
a = random.randint(1,10)
print(a)
print('请猜测随机产生的10以内的整型数是?您共有三次机会!')
for i in range(3):
    input_number = int(input('第%d次:'% (i+ 1)))
    if input_number == a:
        print('厉害了!500万属于你')
        break
    else:
        if i < 2:
            if input_number > a:
                print('大了,再给你一次机会')
            else:
                print('大胆一点')
        else:
            print('抱歉,游戏结束!三次机会已用完!')

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

count = 0 
for r in range(4):
    for b in range(4):
        for y in range(5):
            if (r + b + y)== 8:
                count += 1
                print("红球有{}个,蓝色球有{}个,黄球有{}个".format(r,b,y))
print('一共有{}种情况'.format(count))

24.打印9 9乘法表

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

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

count = 1 
for i in range(10):
    count = (count + 1)*2
print('这堆桃最初有%d 个'% count)

 

posted on 2018-12-10 12:22  张拽拽  阅读(312)  评论(0编辑  收藏  举报