zoukankan      html  css  js  c++  java
  • 20181207hw

    小作业3

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

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

    d = {}
    
    lists = ( '增加姓名和手机' , '删除姓名' , '修改手机' , '查询所有用户' , '根据姓名查手机' , '退出' )
    
    print("{:=^20}".format('通讯录'))
    for i in range( len( lists ) ):
        print( i+1 , '.{}'.format( lists[i] ) )
    print( "{:=^23}".format( '' ) )
    
    while True:
        n = int( input( "请选择操作:" ) )
        if n == 6 :
            print( '谢谢使用,再见!!!' )
            break
        elif n not in ( 1 , 2 , 3 , 4 , 5 ):
            print( '输入错误!!!' )
            continue
        else:
            if n == 1:
                name = input( '请输入姓名:' )
                if name not in d.keys():
                    d[name] = input( '请输入手机号:' )
                else:
                    print( '{}已经在通讯录中'.format(name) )
            elif n == 2:
                name = input( '请输入姓名:' )
                if name in d.keys():
                    d.pop( name )
                else:
                    print('查无此人!!!' )
                    continue
            elif n == 3:
                name = input( '请输入姓名:' )
                if name in d.keys():
                    d[ name ] = input( "请输入新手机号:" )
                else:
                    print('查无此人!!!' )
                    continue
            elif n == 4:
                print( list( d.keys() ) )
            else:
                name = input( '请输入姓名:' )
                if name in d.keys():
                    print( d[ name ] )
                else:
                    print('查无此人!!!' )

    小作业4

    5. 随机产生密码:

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

    import random
    
    l = []
    
    for i in range( 10 ):
        l.append( i ) 
    for i in range( ord('a') , ord('z') + 1 ):
        l.append( chr(i) )
    for i in range( ord('A') , ord('Z') + 1 ):
        l.append( chr(i) )
    
    passwds = [ '' , '' , '' ]
    
    for i in range(3):
        for j in range(8):
            passwds[ i ] +=  str( l[ random.randrange( len( l ) ) ] ) 
    
    for passwd in passwds:
        print( passwd )

    小作业5

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

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

    int( v , 2 )

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

    bin( v )
    

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

    int( '0o' + str[1:] , 8 )
    

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

    oct( v )

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

    int( v , 16 )

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

    hex( v )

    3.求结果

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

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

     a.[ 1,3,5,7,9 ]

     b.( 1,3,5,7,9 )

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

      a.1

      b.2

      c.False

      d.False

    小作业6

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

      cost > 10 and cost < 15


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

      一行可以输入多条语句,用;(分号)隔开

      一个语句可以分成多行书写,需要在断开的地方添加 字符,表示这一行尚未结束。

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

    print( 'float-->int n : {}'.format( int( float( input( 'input float f : ' ) ) + 0.5 )  ) )

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

       9

    5.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请编程求解该阶梯至少有多少阶?

    i = 1 
    
    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
        else:
            i += 1

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

    x , y , z = z , x , y

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

       while True:

            while True:

                break

                print(1)

            print(2)

            break

       else:

            print(3)

        会打印:2

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

      使用append,是将['竹林小溪', 'Crazy迷恋']看作一个对象,整体打包添加到member对象中,

      即member中多了一个成员——['竹林小溪', 'Crazy迷恋']

      使用extend,是将new_media看作一个序列,将这个序列和music_media序列合并,并放在其后面,

      即member中多了两个个成员——'竹林小溪' 、'Crazy迷恋'

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

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

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

    10.要对一个列表进行顺序排序,请问使用什么方法?
        list.sort()# 改变原列表

       sorted( list )# 不改变原列表,返回值为排序后的列表


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

       list.sort( reserve = True )

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

       当不希望内容被轻易改写的时使用元组 

       救列表,因为元组在python中序列不可变

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

      不是

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

    print( '#进制转换#' )
    
    def get_int( str ):
        flag = 10
        if str[:2] == '0b':
            return [ 2 , int( str , 2 ) ] 
        elif str[:2] == '0o':
            return [ 8 , int( str , 8 ) ] 
        elif str[:2] == '0x':
            return [ 16 , int( str , 16 ) ] 
        else:
            return [ 10 , int( str )]
        
    
    l = get_int( input( '请按进制格式输入 number = ' ) ) 
    print( '二进制  {}
    八进制  {}
    十进制  {}
    十六进制{}'
    .format( bin( l[1] ) , oct( l[1] ) , l[1] , hex( l[1] ) ) ) 

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

       统称有序序列

      共性:有序,可索引

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

    import random
    
    print( '猜字游戏' )
    n = random.randrange( 10 )
    
    i = 0 
    while i < 3:
        g = int( input('g = ') )
        if g == i:
            print( '厉害了!500万属于你' )
            break
        else :
            if i in [0,1]:
                print( '大了,再给你一次机会' if g > n else '大胆一点' )
            else:
                print( '你输了!!!' )
                break
        i += 1 

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

    for r in [1,2,3]:
        for b in [1,2,3]:
            for y in [1,2,3,4]:
                print( 'red:{} blue:{} yellow:{}
    '.format(r,b,y) 
                if r + b + y == 8 else '',end='' )

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

    i = 1 
    
    for j in range( 10 ):
        i = ( i + 1 ) * 2 
    
    print( i )
  • 相关阅读:
    【例题 6-21 UVA
    【例题 6-20 UVA
    【Codeforces Round #446 (Div. 2) C】Pride
    【Codeforces Round #446 (Div. 2) B】Wrath
    【Codeforces Round #446 (Div. 2) A】Greed
    【例题 6-19 UVA
    【CF675C】Money Transfers(离散化,贪心)
    【CF659E】New Reform(图的联通,环)
    【POJ1276】Cash Machine(多重背包单调队列优化)
    【HDU3507】Print Article(斜率优化DP)
  • 原文地址:https://www.cnblogs.com/TyroneYang/p/10091094.html
Copyright © 2011-2022 走看看