• python之道06


    1,使⽤循环打印以结果:

    *
    ***
    *****
    *******
    *********
    

    答案:

    方法一:
    for i in range(10):
        if i % 2 == 1:
            print(i*'*')
    '''
    输出结果
    *
    ***
    *****
    *******
    *********
    '''
    方法二:
    for i in range(1,10,2):
       print(i*'*')
    

    2,使用while循环打印以下结果:

    **********
    *********
    ********
    *******
    ******
    *****
    ****
    ***
    **
    *
    

    答案:

    for i in range(10,0,-1):
        print(i*'*')
    

    3,写代码实现

    v1 = {"alex","wusir","taibai"}
    v2 = []
    

    循环让用户输入,如果用户输入的内容在v1中存在,就添加到v2中,如果v1中不存在就添加的v1中,用户输入Q退出程序

    答案:

    v1 = {"alex","wusir","taibai"}
    v2 = []
    while 1:
        enter = input('>>> ')
    
        if enter in v1:
            v2.append(enter)
        elif enter.upper() == 'Q':
            break
        else:
            v1.add(enter)
    print(v1,v2)
    
    # 讲解
    v1 = {"alex","wusir","taibai"}
    v2 = []
    while 1:
        my_input = input('>>>')
        if my_input.upper() == 'Q': # 最好将q写到第一行,注意需要打印
            break
        elif my_input in v1:
            v2.append(my_input)
        else:
            v1.add(my_input)
    print(v1)
    print(v2)
    

    4.判断以下值那个能做字典的key ?那个能做集合的元素?

    1. -1
    2. ""
    3. None
    4. [1,2]
    5. []
    6. (1,2,3)
    7. ("1")
    8. (1,)
    9. {1,2,3,4}
    10. {"name":"alex","name1":"wusir"}

    答案:

    可以做字典的key:
    1 2 3 6 7 8 
    可以做集合的元素:
    1 2 3 6 7 8
    

    5.is 和 == 的区别是什么?

    答案:

    is用来判断内存地址是否相同
    ==用来判断等号两边的值是否相同
    

    6.id的作用是什么?

    答案:

    id 用来获取内存地址
    格式:
    l1 = [1,2,3]  
    print(id(l1))
    '''
    输出结果
    4487978824
    '''
    

    7.看代码写结果并解释原因(以下看代码写结果,一定要自己先思考.在验证!)

    v1 = {'k1':'v1','k2':[1,2,3]}
    
    v2 = {'k1':'v1','k2':[1,2,3]}
    
    
    result1 = v1 == v2 
    
    result2 = v1 is v2 
    
    print(result1)
    
    print(result2)
    

    答案:

    v1 = {'k1':'v1','k2':[1,2,3]}
    
    v2 = {'k1':'v1','k2':[1,2,3]}
    
     
    result1 = v1 == v2 # 值相同内存地址不一定相同 
    
    result2 = v1 is v2 # 判断v1和v2的内存地址是否相同,内存地址相同值一定相同
    
    print(result1)
    
    print(result2)
    结果:
    True
    False
    

    8.看代码写结果并解释原因

    v1 = {'k1':'v1','k2':[1,2,3]}
    v2 = v1
    v1['k1'] = 'wupeiqi' 
    print(v2["k1"] + v1["k1"])
    

    答案:

    v1 = {'k1':'v1','k2':[1,2,3]}
    v2 = v1 # 赋值 指向同一个内存地址
    v1['k1'] = 'wupeiqi'  # v1的值发生改变,v2也跟着改变 此时v1 = {'k1':'wupeiqi','k2':[1,2,3]} = v2
    print(v2["k1"] + v1["k1"]) #print(wupeiqi+wupeiqi)
    wupeiqiwupeiqi
    

    9.看代码写结果并解释原因

    v1 = '人生苦短,我用Python'
    
    v2 = [1,2,3,4,v1]
    
    v1 = "人生苦短,用毛线Python"
    
    print(v2)
    

    答案:

    v1 = '人生苦短,我用Python'
    
    v2 = [1,2,3,4,v1] # v2中的v1实际指向的是v1的值而不是v1这个变量
    
    v1 = "人生苦短,用毛线Python" # v1的指向发生变化,但是v2还是指向原先的内存地址,代码从上到下执行
    
    print(v2)
    结果:
    [1,2,3,4,'人生苦短,我用Python']
    

    10.看代码写结果,并解释原因

    info = [1,2,3]
    userinfo = [info,info,info,info,info]
    info[0] = '不仅多,还特么难呢'
    print(info,userinfo)
    

    答案:

    原因:
    info = [1,2,3]
    userinfo = [info,info,info,info,info] # 相当于浅拷贝,只拷贝了第一层,第二层发生改变,都变
    info[0] = '不仅多,还特么难呢'
    print(info,userinfo)
    结果:
    ['不仅多,还特么难呢',2,3]
    [['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3]]
    

    11.看代码写结果,并解释原因

    dic1 = {"k1":5,"k2":10}
    dic2 = dic1.copy()
    dic2["k1"] = 1
    print(dic1["k1"] + dic2["k1"])
    

    答案:

    原因:
    dic1 = {"k1":5,"k2":10}
    dic2 = dic1.copy() # 浅拷贝,拷贝了第一层,dic1中没有第二层,所以其中一个字典发生改变不影响第二字典,dic2 = {"k1":5,"k2":10}
    dic2["k1"] = 1 # dic2 = {"k1":1,"k2":10}
    print(dic1["k1"] + dic2["k1"])
    结果:6
    

    12.念数字给出一个字典. 在字典中标识出每个数字的发音. 包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音(单纯的打印即可,不考虑个十百)

    例如: 7.5 输出: qi_dian_wu

    dic = {
    '0':'ling',
    '1':'yi',
    '2':'er',
    '3':'san',
    '4':'si',
    '5':'wu',
    '6':'liu',
    '7':'qi',
    '8':'ba',
    '9':'jiu',
    '.':'dian',
    }
    

    答案:

    num = input('请输入一个数字: ')
    s = ''
    for i in num:
        s = s + dic[i] + '_'
    print(s[:-1])
    '''
    输出结果
    输入:7.5
    输出:qi_dian_wu
    '''
    

    13.敲七游戏.从1开始数数.遇到7或者7的倍数要在桌上敲⼀下.编程来完成敲七.给出⼀个任意的数字n. 从1开始数. 数到n结束.把每个数字都放在列表中, 在数的过程中出现7或者7的倍数(不包含类似于17,27,这种数).则向列表中添加⼀个'咣'

    例如, 输⼊10 # lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]

    答案:

    lst = []
    while 1:
        num = int(input('>>>'))
        for i in range(1,num+1):
            if i % 7 == 0:
                lst.append('咣')
            else:
                lst.append(i)
        print(lst)
    '''
    输出结果
    [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]
    '''
    
  • 相关阅读:
    数据结构实验报告(四)
    数据结构实验报告(三)
    数据结构实验报告(一)
    数据结构实验报告(二)
    Java基础之排序
    1070 Mooncake
    1071 Speech Patterns
    1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
    5403. Find the Kth Smallest Sum of a Matrix With Sorted Rows
    1072 Gas Station
  • 原文地址:https://www.cnblogs.com/zanao/p/11007829.html
Copyright © 2020-2023  润新知