python作业4

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

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

#3.5
l = []
d = dict()
s =  '通讯录管理系统'
print('{:=^21}'.format(s))
s = '1.增加姓名和手机'
print(s)
s = '2.删除姓名'
print(s)
s = '3.修改手机'
print(s)
s = '4.查询所有用户'
print(s)
s = '5.根据姓名查找手机号'
print(s)
s = '6.退出'
print(s)
s = '='
print(s*30)
while True:
    n = int(input('请输入数字进行操作:'))
    if n == 1:
        k = input('请输入姓名:')
        v = input('请输入手机号:')
        d[k]= v
        print()
    elif n == 2:
        k = input('请输入所删姓名:')
        for i in d:
            if k == i:
                d.pop(k)
                break
            else:
                print('姓名不存在')
        print()
    elif n == 3:
        k = input('请输入要修改的姓名:')
        for i in d:
            if k == i:
                v = input('请输入要修改的手机号:')
                d[k]= v
                break
            else:
                print('姓名不存在')
        print()
                                                                                                                          1,1          顶端

4.5. 随机产生密码:

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

#4.5
l = []
for i in range(10):
    l += [i] 
for i in range(26):
    l += chr(ord('a') + i)
for i in range(26):
    l += chr(ord('A') + i)
#print(l)

import random
l2 = []
for i in range(10):
    l1 = []
    for j in range(8):
        l1 += [l[random.randrange(0,10+26+26)]]
        if j == 7:
            l2 += [l1]
print(l2)   

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

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

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

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

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

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

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

#5.1
v = '0b1111011'
print(int(v,2))

v = '18'
print(bin(int(v,10)))

v = '011'
print(int(v,8))

v = '30'
print(oct(int(v,10)))

v = '0x12'
print(int(v,16))

v = '87'
print(hex(int(v,10)))

5.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 
v2 = 3 
v3 = 0 
v4 = 1 
v5 = 1 
v6 = False

5.7.求结果: 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 0x7f5d13479e08>

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

#5.8
a = 1 
b = 2 
c = False
d = True

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

a = ('cost > 10 and coat < 50')


2.Python3 中,一行可以书写多个语句吗?
Python3 中,一个语句可以分成多行书写吗?

a = ('可以,用;隔开即可')
b = ('可以,用\即可换行')

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

s = float(input(':'))
s1= int(s + 0.5)
print(s1)

4.请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9

a = 4

5.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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:
        print(i)
        break
    i += 1

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

x = 1
y = 2
z = 3
n = x
x = y
y = z
z = n


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

   while True:

        while True:

            break

            print(1)

        print(2)

        break

   else:

        print(3)

a = 2

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

a = ('不同,s.append(x)相当于s[len(s):len(s)] = [x],\
    把['竹林小溪', 'Crazy迷恋']当作一个元素加入;s.exte\
    nd(t)相当于s[len(s):len(s)] = t,把['竹林小溪', 'Cr\
    azy迷恋']里的2个字符串当作两个元素加入')

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

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

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

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

a = ('用.sort()函数')


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

a = ('用.reverse()函数')

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

a = ('不用改变序列时,救列表,元组添不进水,不会淹死')

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

a = ('不是,这只是对x,y,z分别赋值')

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

s = input('请输入数字:')
a,b = eval(input('请输入a,b(a进制转b进制):'))
f = 0
if a == 2:
    if b == 8:
        s1 = oct(int(s,2))
    elif b == 10:
        s1 = int(s,2)
    elif b == 16:
        s1 = hex(int(s,2))
    else:
        print('错误')
        f = 1
elif a == 8:
    if b == 2:
        s1 = bin(int(s,8))
    elif b == 10:
        s1 = int(s,8)
    elif b == 16:
        s1 = hex(int(s,8))
    else:
        print('错误')
        f = 1
elif a == 10:
    if b == 2:
        s1 = bin(int(s,10))
    elif b == 8: 
        s1 = oct(int(s,10))
    elif b == 16: 
        s1 = hex(int(s,10))
    else:
        print('错误')
        f = 1 
elif a == 16:
    if b == 2:
        s1 = bin(int(s,16))
    elif b == 8: 
        s1 = oct(int(s,16))
    elif b == 10: 
        s1 = int(s,16)
    else:
        print('错误')
        f = 1 
else:
    print('错误')
    f = 1 

if f == 0:
    print(s1)

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

a = ('统称为序列类型,是基本序列类型')

16.请问这个函数有多少个参数?

def MyFun((x,y), (a, b)):

      return x * y - a * b

17.编写一个函数满足以下功能:

计算打印所有参数的和乘以基数(base=3)的结果

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

#6.18
import random
n = random.randint(0,10)
for i in range(3):
    m = int(input('请猜数字0~10:'))
    if m == n:
        print('厉害了!500万属于你')
        break
    elif m > n:
        if i == 2:
            break
        print('大了,再给你一次机会')   
    elif m < n:
        if i == 2:
            break
        print('大胆一点')

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

l = []
for i in range(4):
    for j in range(4):
        for k in range(5):
            if i + j + k == 8:
                l += [[i,j,k]]
print(l)
n = len(l)
print(n)

20.打印9 9乘法表

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

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

i = 0
while True:
    i += 1
    n = i
    f = 0
    for j in range(9):
        if i % 2 != 0:
            f = 1
            break
        i = (i / 2) - 1

    if f == 0 and i == 1:
        print(n)
        break
        
    i = n

猜你喜欢

转载自www.cnblogs.com/tangyun966/p/10095857.html