• 20181209hw


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

     

  • 相关阅读:
    Ubuntu 16.04 OneDrive自动同步
    在conda环境中pip使用清华源秒速安装skimage、opencv、tensorflow、pytorch1.2.0等p
    写论文的最佳实践
    训练误差、测试误差、泛化误差的区别
    输入法 ctrl+句号 切换 中英文符号
    理解Graham扫描算法 查找凸包
    PDF阅读器 SumatraPDF 设置:电子书字体字号的更换及行距设置
    友情链接
    CRC全套~~~ 转载
    mysql插入中文出错,提示1366
  • 原文地址:https://www.cnblogs.com/liuyibo007/p/10098082.html
Copyright © 2020-2023  润新知