• 小作业


    小作业 3

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

    print('=======通讯录管理系统=======')
    print(' ')
    print('1.增加姓名和手机')
    print('2.删除姓名')
    print('3.修改手机')
    print('4.查询所有用户')
    print('5.根据姓名查找手机号')
    print('6.退出')
    dict1 = {}
    while True:
        c = int(input('请选择要执行的选项:'))
        if c == 1:
            name = input('请输入你的姓名:')
            if name in dict1:
                print('该联系人已存在!')
                continue
            else:
                value= int(input('请输入你的手机:'))
                dict1[name] = value
                print(dict1)
                continue
        if c == 2:
            name = input('请输入要删除的姓名:')
            dict1.pop(name)
            print('已删除')
            print(dict1)
            continue
        if c == 3:
            name=input('请输入要修改手机号的姓名:')
            num = int(input('请输入新的手机号:'))
            dict1[name] = num
            print(dict1[name])
        if c == 4:
            for i,j in dict1.items():
                print(i,j)
        if c == 5:
            name = input('请输入要查找的姓名:')
            if name in dict1:
                print(dict1[name])
            else:
                print('该联系人不存在!')
        if c == 6:
            print('退出')
            break

    小作业 4

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

    import random
    l = []
    for i in range(65,91): # 产生大写字母
        l += chr(i)
    for i in range(97,123): # 产生小写字母
        l += chr(i)
    for i in range(10): # 产生 10 以内的数
        l += str(i)
    #print(l)
    for j in range(10): 
        b=""
        for i in range(8): # 随机产生 8 位密码
            a = random.choice(l)
            b+=a
        print(b)

     小作业 5

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

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

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

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

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

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

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

    print(int(0b1111011)) # 123
    print(bin(18)) # 0b10010
    print(int(0o011)) # 9
    print(oct(30)) # 0o36
    print(int(0x12)) # 18
    print(hex(87)) # 0x57
    # print(type(hex(87))) <class 'str'>

    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 False and 1

    print(1 or 3) # 1
    print(1 and 3) # 3
    print(0 and 2 and 1) # 0
    print(0 and 2 or 1) # 1
    print(0 and 2 or 1 or 4) # 1
    print(0 or False and 1) # False

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

    print([ i % 2 for i in range(10) ]) # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
    print((i % 2 for i in range(10))) # <generator object <genexpr> at 0x00000000030002B0>
    a = ( i % 2 for i in range(10))
    print(next(a))
    for i in a:
        print(i,end=' ')
    print() # 生成器:节省空间

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

    print(1 or 2) # 1
    print(1 and 2) # 2
    print(1 < (2==2)) # False
    print(1 < 2 == 2) # True 1 < 2 and 2 == 2

    小作业 6

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

    10 < cost and cost <50

    2.Python3 中,一行可以书写多个语句吗?
    可以 用空格 隔开 l = [i for i in range(100) if i % 2 == 0]
    Python3 中,一个语句可以分成多行书写吗?
    可以 用 换行

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

    s = eval(input('小数:'))
    a = int(s+0.5)
    print(a)

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

    for x in range(1000):
        if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and (x%7 ==0):
            print('阶梯数是:', x)
            break

    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)
    # 相当于:
    while True:
        print(2)
        break

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

    member = []
    member.append(['竹林小溪', 'Crazy迷恋'])
    print(member)
    member.extend(['竹林小溪', 'Crazy迷恋'])
    print(member)
    # 打印结果
    [['竹林小溪', 'Crazy迷恋']]
    [['竹林小溪', 'Crazy迷恋'], '竹林小溪', 'Crazy迷恋']

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

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

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

    a = [5,3,2,1,4]
    a.sort()
    print(a)

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

    b = [6,7,8,9,10]
    b.reverse()
    print(b)

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

    当我们希望内容不被轻易改写的时候,我们使用元组(存放固定数据)。  
    当我们需要频繁修改数据,我们使用列表。

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

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

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

    不是

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

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

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

    print('============ 进制转换系统 ============')
    num = int(input('(十进制转其他):'))
    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.我们根据列表、元祖和字符串的共同特点,把它们三统称为什么?有什么共性

    序列
    序列,因为他们有以下共同点:    
    1)都可以通过索引得到每一个元素
    2)默认索引值总是从0开始(可以负数索引)
    3)可以通过分片的方法得到一个范围内的元素的集合
    4)有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)

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

    import random
    c = random.randint(1,9)
    change = 2
    for i in range(3):
        s = int(input('请输入一个整型数:'))
        if change == 0:
            print('没机会了')
            break
        if s == c:
            print('厉害了!500万属于你')
            break
        elif s < c:
            print('大胆一点')
        elif s > c:
            print('大了,再给你一次机会')
        change -=1

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

    n = 0
    for x in range(1,4):
        for y in range(1,4):
            for z in range(1,5):
                if x + y + z == 8:
                    n += 1
                    print("红色{},蓝色{},黄色{}".format(x,y,z))
    print("共{}种".format(n))

    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个桃子。输出这堆桃最初有多少个。

    p = 1 # 第十天剩下的
    for i in range(1,10):
        p = (p+1) * 2
    print(p)
  • 相关阅读:
    Linux启动或禁止SSH用户及IP的登录
    How to Setup Chroot SFTP in Linux (Allow Only SFTP, not SSH)
    vsftp被动模式启用iptables访问设置
    关于使用Element.getNodeValue()返回NULL的问题
    Quartz 有状态的JobDataMap
    log4j学习日记-写入数据库
    LeetCode 551. Student Attendance Record I (学生出勤纪录 I)
    LeetCode 680. Valid Palindrome II (验证回文字符串 Ⅱ)
    LeetCode 125. Valid Palindorme (验证回文字符串)
    LeetCode 541. Reverse String II (反转字符串 II)
  • 原文地址:https://www.cnblogs.com/wt1103/p/10090694.html
Copyright © 2020-2023  润新知