• Python 练习题


    python 练习题

    day1

    1.简述变量命名规范

    7条:
    1.由字母,数字和下划线组成
    
    

    2.name = input(“>>>”) name变量是什么数据类型通过代码检测

    type
    

    3.if条件语句的基本结构?

    if 条件 :
    	print()
    

    4.用print打印出下面内容:

    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君.

    5.利用if语句写出猜大小的游戏:

    设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

    num = 66
    if num ==66:
      print("正确")
    

    6.提⽰⽤户输入他的年龄, 程序进⾏判断.

    如果⼩于10, 提⽰⼩屁孩, 如果⼤于10, ⼩于 20, 提⽰青春期叛逆的⼩屁孩. 如果⼤于20, ⼩于30. 提⽰开始定性, 开始混社会的⼩ 屁孩⼉, 如果⼤于30, ⼩于40. 提⽰看老⼤不⼩了, 赶紧结婚⼩屁孩⼉. 如果⼤于40, ⼩ 于50. 提⽰家⾥有个不听话的⼩屁孩⼉. 如果⼤于50, ⼩于60. 提⽰⾃⼰⻢上变成不听 话的老屁孩⼉.如果⼤于60, ⼩于70. 提⽰活着还不错的老屁孩⼉. 如果⼤于70, ⼩于 90. 提⽰⼈⽣就快结束了的⼀个老屁孩⼉. 如果⼤于90以上. 提⽰. 再⻅了这个世界.

    7.单行注释以及多行注释表示方式

    8.简述你所知道的Python3和Python2的区别?

    9.提⽰⽤户输入大黑哥. 判断⽤户输入的对不对. 如果对, 提⽰真聪明, 如果不对, 提⽰输入有误

    10.⽤户输⼊⼀个⽉份. 然后判断⽉份是多少⽉. 根据不同的⽉份, 打印出不同的饮⻝(根据个⼈习惯和⽼家习惯随意编写)

    11.⽤户输⼊⼀个分数. 根据分数来判断⽤户考试成绩的档次

    =90 A
    =80 B
    =70 C
    =60 D
    < 60 不及格

    day2

    1.判断下列逻辑语句的结果,一定要自己先分析
    1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

    2.求出下列逻辑语句的值,一定要自己分析
    1)8 or 3 and 4 or 2 and 0 or 9 and 7
    2)0 or 2 and 3 and 4 or 6 and 0 or 3
    3)1 and 0 or 8 and 9 and 5 or 2
    4)4 or 8 and not False and 8 or 9

    3.下列结果是什么? (2>1这种是一体)

    1. 6 or 2 > 1
    2. 3 or 2 > 1
    3. 0 or 5 < 4
    4. 5 < 4 or 3
    5. 2 > 1 or 6
    6. 3 and 2 > 1
    7. 0 and 3 > 1
    8. 2 > 1 and 3
    9. 3 > 1 and 0
    10. 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

    4.简述ASCII、Unicode、utf-8编码

    5.简述位和字节的关系?

    6.while循环语句基本结构?

    7.利用while语句写出猜大小的游戏:
    设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。

    8.在7题的基础上进行升级:
    给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你....’。

    9.使用while循环输出 1 2 3 4 5 6 8 9 10

    10.求1-100的所有数的和

    11.输出 1-100 内的所有奇数

    12.输出 1-100 内的所有偶数

    13.求1-2+3-4+5 ... 99的所有数的和

    14.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)

    day3

    1.将今天的课上的代码敲一遍,然后整理笔记

    2.有变量name = "aleX leNb" 完成如下操作:

    移除 name 变量对应的值两边的空格,并输出处理结果
    判断 name 变量是否以 "al" 开头,并输出结果
    判断name变量是否以"Nb"结尾,并输出结果
    将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
    将name变量对应的值中的第一个"l"替换成"p",并输出结果
    将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
    将name变量对应的值根据第一个"l"分割,并输出结果。
    将 name 变量对应的值变大写,并输出结果
    将 name 变量对应的值变小写,并输出结果
    判断name变量对应的值字母"l"出现几次,并输出结果
    如果判断name变量对应的值前四位"l"出现几次,并输出结果
    请输出 name 变量对应的值的第 2 个字符?
    请输出 name 变量对应的值的前 3 个字符?
    请输出 name 变量对应的值的后 2 个字符?

    3.有字符串s = "123a4b5c"
    通过对s切片形成新的字符串s1,s1 = "123"
    通过对s切片形成新的字符串s2,s2 = "a4b"
    通过对s切片形成新的字符串s3,s3 = "1345"
    通过对s切片形成字符串s4,s4 = "2ab"
    通过对s切片形成字符串s5,s5 = "c"
    通过对s切片形成字符串s6,s6 = "ba2"

    4.使用while和for循环分别打印字符串s="asdfer"中每个元素。

    5.使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。

    6.使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。

    7.使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。

    8.实现一个整数加法计算器(两个数相加):
    如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。

    9.选做题:实现一个整数加法计算器(多个数相加):
    如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。

    10.计算用户输入的内容中有几个整数(以个位数为单位)。
    如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla

    11.写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?

    12.选做题:写代码,完成下列需求:
    用户可持续输入(用while循环),用户使用的情况:
    输入A,则显示走大路回家,然后在让用户进一步选择:
    是选择公交车,还是步行?
    选择公交车,显示10分钟到家,并退出整个程序。
    选择步行,显示20分钟到家,并退出整个程序。
    输入B,则显示走小路回家,并退出整个程序。
    输入C,则显示绕道回家,然后在让用户进一步选择:
    是选择游戏厅玩会,还是网吧?
    选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
    选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。

    13.选做题:判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海⾃来⽔来⾃海上(使用步长)

    day4

    1.写代码,有如下列表,按照要求实现每一个功能

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    计算列表的长度并输出
    列表中追加元素"seven",并输出添加后的列表
    请在列表的第2个位置前插入元素"Tony",并输出添加后的列表
    请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    请删除列表中的元素"ritian",并输出添加后的列表
    请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
    请删除列表中的第2至4个元素,并输出删除元素后的列表

    2.写代码,有如下列表,利用切片实现每一个功能

    li = [1, 3, 2, "a", 4, "b", 5,"c",["a","b","cc"]]
    通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
    通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
    通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
    通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
    通过对li列表的切片形成新的列表l5,l5 = ["c"]
    通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
    通过对li列表的切片形成新的列表l7,l7 = ['cc', 'b', 'a']

    3.写代码,有如下列表,按照要求实现每一个功能。

    lis = [2, 33, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    将列表lis中的"tt"变成大写(用两种方式)。
    将列表中的数字3变成字符串"100"(用两种方式)。
    将列表中的字符串"1"变成数字101(用两种方式)。

    4.请用代码实现:
    li = ["alex", "wusir", "taibai"]
    利用下划线将列表的每一个元素拼接成字符串"alex_wusir_taibai"

    5.利用for循环和range打印出下面列中每个元素的索引。

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]

    6.利用for循环和range将100以内所有的偶数添加到一个新列表中。

    7.利用for循环和range找出50以内能被3整除的数,并将这些数插入到一个新列表中。

    8.利用for循环和range从100 ~ -1,倒序打印。

    9.利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后在对列表的元素进行筛选,将能被4整除的数留下来。

    10.利用for循环和range,将1-30的数字中能被3整除的数改成* 依次添加到的列表当中

    11.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
    li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]

    12.开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
    敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    则将用户输入的内容中的敏感词汇替换成等长度的(苍老师就替换**),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。

    13.有如下列表(选做题)
    li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
    循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
    我想要的结果是:
    1
    3
    4
    alex
    3
    7
    8
    taibai
    5
    ritian

    14.用户输入一个数字,使用列表输出这个数字内的斐波那契数列,如下列表:(选做题)
    用户输入100 输出[1,1,2,3,5,8,13,21,34,55,89]这个列表

    day5

    1.请将列表中的每个元素通过 "_" 链接起来。
    users = ['大黑哥','龚明阳',666,'渣渣辉']

    2.请将元组 v1 = (11,22,33) 中的所有元素追加到列表 v2 = [44,55,66] 中。

    3.请将元组 v1 = (11,22,33,44,55,66,77,88,99)中的所有偶数索引位置的元素追加到新列表中。

    4.将字典的键和值分别追加到key_list 和 value_list 两个列表中,如:
    key_list = []
    value_list = []
    info = {'k1':'v1','k2':'v2','k3':'v3'}

    5.字典dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    a. 请循环输出所有的key
    b. 请循环输出所有的value
    c. 请循环输出所有的key和value
    d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    f. 请在k3对应的值中追加一个元素 44,输出修改后的字典
    g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典

    6.有如下字典,实现以下需求的内容
    av_catalog = {
    "欧美":{
    "www.太白.com": ["很多免费的,世界最大的","质量一般"],
    "www.alex.com": ["很多免费的,也很大","质量挺好"],
    "oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
    "hao222.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
    },
    "日韩":{
    "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
    },
    "大陆":{
    "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    }
    }
    1)给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个 元素:'量很大'。
    2)将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
    3)将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
    4)给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
    5)删除这个键值对:"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]
    6)给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'

    7.请循环打印k2对应的值中的每个元素。
    info = {
    'k1':'v1',
    'k2':[('alex'),('wupeiqi'),('oldboy')],
    }
    8.有字符串"k: 1|k1:2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....}
    写代码

    9.有如下值 li= [11,22,33,44,55,77,88,99,90] ,将所有大于 66 的值保存至字典的第一个key对应的列表中,将小于 66 的值保存至第二个key对应的列表中。

    10.输出商品列表,用户输入序号,显示用户选中的商品

    商品列表:
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998}
    ]
    要求:
    1:页面显示 序号 + 商品名称 + 商品价格,如:
    1 电脑 1999
    2 鼠标 10
    3 游艇 20
    4 美女 998
    2:用户输入选择的商品序号,然后打印商品名称及商品价格
    3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。

    11.看代码写结果(一定要先看代码在运行)
    v = {}
    for index in range(10):
    v['users'] = index
    print(v)

    day6

    1.有如下
    v1 = {'郭宝元','李杰','太白','梦鸽'}
    v2 = {'李杰','景女神}
    请得到 v1 和 v2 的交集并输出
    请得到 v1 和 v2 的并集并输出
    请得到 v1 和 v2 的 差集并输出
    请得到 v2 和 v1 的 差集并输出

    2.循环提示用户输入,并将输入内容追加到列表中(如果输入N或n则停止循环)

    3.写代码实现
    v1 = {'alex','武sir','黑哥'}
    v2 = []

    循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入N或n则停止循环)

    4.判断以下值那个能做字典的key ?那个能做集合的元素?
    1
    -1
    ""
    None
    [1,2]
    (1,)
    {11,22,33,4}
    {'name':'wupeiq','age':18}

    5.is 和 == 的区别?

    6.type使用方式及作用?

    7.id的使用方式及作用?

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

    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)
    

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

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

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

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

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

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

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

    info = [1,2,3]
    userinfo = {'account':info, 'num':info, 'money':info}
    
    info.append(9)
    print(userinfo)
    
    info = "题怎么这么多"
    print(userinfo)
    
    

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

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

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

    info = [1,2,3]
    userinfo = [info,info,info,info,info]
    
    userinfo[2][0] = '闭嘴'
    print(info,userinfo)
    
    

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

    info = [1,2,3]
    user_list = []
    for item in range(10):
        user_list.append(info)
        
    info[1] = "是谁说Python好学的?"
    
    print(user_list)
    
    

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

    data = {}
    for i in range(10):
        data['user'] = i
    print(data)
    
    

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

    data_list = []
    data = {}
    for i in range(10):
        data['user'] = i
        data_list.append(data)
    print(data_list)
    
    

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

    data_list = []
    for i in range(10):
        data = {}
        data['user'] = i
        data_list.append(data)
    print(data_list)
    
    

    19.使用循环打印出一下效果:

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

    20.敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲⼀下. 编程来完成敲七. 给出⼀个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或 者7的倍数(不包含17,27,这种数).则向列表中添加⼀个'咣'
    例如, 输⼊10. lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]

    day7

    print(v2)
    
    

    3.看代码写结果,并解释每一步的流程。

    v1 = [1,2,3,4,5,6,7,8,9]
    v2 = {}
    for item in v1:
        if item < 6:
            continue
        if 'k1' in v2:
            v2['k1'].append(item)
        else:
            v2['k1'] = [item ]
    print(v2)
    
    

    4.简述赋值和深浅拷贝?

    5.看代码写结果

    import copy
    v1 = "alex"
    v2 = copy.copy(v1)
    v3 = copy.deepcopy(v1)
    print(v1 is v2)
    print(v1 is v3)
    
    

    6.看代码写结果

    import copy
    v1 = [1,2,3,4,5]
    v2 = copy.copy(v1)
    v3 = copy.deepcopy(v1)
    print(v1 is v2)
    print(v1 is v3)
    
    

    7.看代码写结果

    import copy
    v1 = [1,2,3,4,5]
    v2 = copy.copy(v1)
    v3 = copy.deepcopy(v1)
    
    print(v1[0] is v2[0])
    print(v1[0] is v3[0])
    print(v2[0] is v3[0])
    
    

    8.看代码写结果

    import copy
    
    v1 = [1,2,3,4,[11,22]]
    v2 = copy.copy(v1)
    v3 = copy.deepcopy(v1)
    
    print(v1[-1] is v2[-1])
    print(v1[-1] is v3[-1])
    print(v2[-1] is v3[-1])
    
    

    9.看代码写结果

    import copy
    
    v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
    v2 = copy.copy(v1)
    
    print(v1 is v2)
    
    print(v1[0] is v2[0])
    print(v1[3] is v2[3])
    
    print(v1[3]['name'] is v2[3]['name'])
    print(v1[3]['numbers'] is v2[3]['numbers'])
    print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
    
    

    10.看代码写结果

    import copy
    v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
    v2 = copy.deepcopy(v1)
    print(v1 is v2)
    print(v1[0] is v2[0])
    print(v1[3] is v2[3])
    
    print(v1[3]['name'] is v2[3]['name'])
    print(v1[3]['numbers'] is v2[3]['numbers'])
    print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
    
    

    11.请说出下面a,b,c三个变量的数据类型。
    a = ('太白金星')
    b = (1,)
    c = ({'name': 'barry'})

    1. 按照需求为列表排序:
    l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
    # 从大到小排序
    # 从小到大排序
    # 反转l1列表
    
    

    13.利用python代码构建一个这样的列表(升级题):

    [['_','_','_'],['_','_','_'],['_','_','_']]
    
    

    14.看代码写结果:

    l1 = [1,2,]
    l1 += [3,4]
    print(l1)
    
    

    15.看代码写结果:

    dic = dict.fromkeys('abc',[])
    dic['a'].append(666)
    dic['b'].append(111)
    print(dic)
    
    

    16.l1 = [11, 22, 33, 44, 55],请把索引为奇数对应的元素删除(不能一个一个删除)

    17.dic = {'k1':'太白','k2':'barry','k3': '白白', 'age': 18} 请将字典中所有键带k元素的键值对删除.

    18.完成下列需求:
    s1 = '太白金星'
    将s1转换成utf-8的bytes类型。
    将s1转化成gbk的bytes类型。
    b = b'xe5xaex9dxe5x85x83xe6x9cx80xe5xb8x85'
    b为utf-8的bytes类型,请转换成gbk的bytes类型。

    1. 用户输入一个数字,判断一个数是否是水仙花数。
      水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,
      例如: 153 = 13 + 53 + 3**3
    2. 把列表中所有姓周的⼈的信息删掉(此题有坑, 请慎重):
      lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
      结果: lst = ['麻花藤']

    21.车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (选做题)
    cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041']
    locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南'}
    结果: {'⿊⻰江':2, '⼭东': 2, '上海': 1}

    第一周大作业

    1.整理本周的内容,抒写笔记. 画思维导图!

    2.完成一个商城购物车的程序。

    要求:
    1,用户先给自己的账户充钱:比如先充3000元。
    2,有如下的一个格式:

    goods = [{"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},]
    
    

    3,页面显示 序号 + 商品名称 + 商品价格,如:
    1 电脑 1999
    2 鼠标 10

    4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车(自己定义购物车),用户还可继续添加商品。

    5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。

    6,用户输入N为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。

    7,用户输入Q或者q退出程序。

    8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息显示。

    1题必须要重视,因为这样就能知道你哪部分的知识点是没有掌握的!

    完成3个要求为C。
    完成4个要求为C+。
    完成6个要求为B。
    完成7个要求为A。
    完成全部要求并且没有BUG为A+。

    
    

    day08

    1.有如下文件,a1.txt,里面的内容为:
    老男孩是最好的学校,
    全心全意为学生服务,
    只为学生未来,不为牟利。
    我说的都是真的。哈哈
    分别完成以下的功能:
    a,将原文件全部读出来并打印。
    b,在原文件后面追加一行内容:信不信由你,反正我信了。
    c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
    d,将原文件全部清空,换成下面的内容:
    每天坚持一点,
    每天努力一点,
    每天多思考一点,
    慢慢你会发现,
    你的进步越来越大。
    2.有如下文件,t1.txt,里面的内容为:
    葫芦娃,葫芦娃,
    一根藤上七个瓜
    风吹雨打,都不怕,
    啦啦啦啦。
    我可以算命,而且算的特别准:
    上面的内容你肯定是心里默唱出来的,对不对?哈哈
    分别完成下面的功能:
    a,以r的模式打开原文件,利用for循环遍历文件句柄。
    b,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析a,与b 有什么区别?深入理解文件句柄与 readlines()结果的区别。
    c,以r模式读取‘葫芦娃,’前四个字符。
    d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
    e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。

    3.文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
    apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3
    通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。

    4.有如下文件:
    alex是老男孩python发起人,创建人。
    alex其实是人妖。
    谁说alex是sb?
    你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
    将文件中所有的alex都替换成大写的SB(文件的改的操作)。

    5.文件a1.txt内容(选做题)

    name:apple price:10 amount:3 year:2012
    name:tesla price:100000 amount:1 year:2013
    .......

    通过代码,将其构建成这种数据类型:
    [{'name':'apple','price':10,'amount':3,year:2012},
    {'name':'tesla','price':1000000,'amount':1}......]
    并计算出总价钱。

    6.文件a1.txt内容(选做题)
    序号 部门 人数 平均年龄 备注
    1 python 30 26 单身狗
    2 Linux 26 30 没对象
    3 运营部 20 24 女生多
    .......

    通过代码,将其构建成这种数据类型:
    [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
    ......]

    day09

    1.整理函数相关知识点

    2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

    3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

    4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

    5.写函数,计算传入函数的字符串中,[数字]、[字母] 以及 [其他]的个数,并返回结果。

    6.写函数,接收两个数字参数,返回比较大的那个数字。

    7.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    PS:字典中的value只能是字符串或列表

    8.写函数,此函数只接收一个参数这个参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

    9.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

    10.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

    day10

    1.继续整理函数相关知识点。

    2.写函数,接收n个数字,求这些参数数字的和。(动态传参)

    3.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?

     a=10
     b=20
     def test5(a,b):
        print(a,b)
     c = test5(b,a)
     print(c)
    
    

    4.读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?

    a=10
    b=20
    def test5(a,b):
       a=3
       b=5
       print(a,b)
    c = test5(b,a)
    print(c)
    
    

    5.传入函数中多个列表和字典,如何将每个列表的每个元素依次添加到函数的动态参数args里面?如何将每个字典的所有键值对依次添加到kwargs里面?

    6.下面代码成立么?如果不成立为什么报错?怎么解决?
    6.1

     a = 2
     def wrapper():
         print(a)
     wrapper()
    
    

    6.2

     a = 2
     def wrapper():
         a += 1
         print(a)
     wrapper()
    
    

    6.3

    def wrapper():
         a = 1
         def inner():
             print(a)
         inner()
    wrapper()
    
    

    6.4

    def wrapper():
         a = 1
         def inner():
             a += 1
             print(a)
         inner()
     wrapper()
    
    

    7.写函数,接收两个列表,将列表长度比较小的列表返回.

    8.写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
    例如 传入的可迭代对象为[1,'老男孩','宝元']返回的结果为’1_老男孩_宝元’

    9.有如下函数:

    def wrapper():
         def inner():
             print(666)
    wrapper()
    
    

    你可以任意添加代码,执行inner函数.

    10.补充代码,可以使以下的代码可以运行

    a = 10
    def func():
         
        a += 1
        print(a)
    func()
    
    

    day11

    1.请写出下列代码的执行结果:
    例一:

    def func1():
    	print('in func1')
    
    def func2():
    	print('in func2')
    
    ret = func1
    
    ret()
    
    ret1 = func2
    
    ret1()
    
    ret2 = ret
    
    ret3 = ret2
    
    ret2()
    
    ret3()
    
    

    执行结果:

    例二:

    def func1():
        print('in func1')
    
    def func2():
        print(**'in func2'**)
    
    def func3(x,y):
    
        x()
    
        print('in func3')
    
        y()
    	
    print(111)
    func3(func2,func1)
    print(222)
    
    

    执行结果:

    例三(选做题):

    def func1():
        print('in func1')
    
    def func2(x):
        print('in func2')
    	return x
    
    def func3(y):
        print('in func3')
        return y
    
    ret = func2(func1)
    ret()
    ret2 = func3(func2)
    ret3 = ret2(func1)
    ret3()
    
    

    执行结果:

    看代码写结果:
    例四:

    def func(arg):
        return arg.replace('苍老师', '***')
    
    def run():
        msg = "Alex的女朋友苍老师和大家都是好朋友"
        result = func(msg)
        print(result)
    
    run()
    data = run()
    print(data)
    
    

    看代码写结果:

    例五:

    data_list = []
    
    def func(arg):
        return data_list.insert(0, arg)
    
    data = func('绕不死你')
    print(data)
    print(DATA_LIST)
    
    

    看代码写结果:
    例六:

    def func():
        print('你好呀')
        return '好你妹呀'
    
    
    func_list = [func, func, func]
    
    for item in func_list:
        val = item()
        print(val)
    
    

    看代码写结果:
    例七:

    def func():
        print('你好呀')
        return '好你妹呀'
    
    
    func_list = [func, func, func]
    
    for i in range(len(func_list)):
        val = func_list[i]()
        print(val)
    
    

    看代码写结果:

    例八:

    def func():
        return '大烧饼'
    
    
    def bar():
        return '吃煎饼'
    
    
    def base(a1, a2):
        return a1() + a2()
    
    
    result = base(func, bar)
    print(result)
    
    

    看代码写结果:

    例九:

    for item in range(10):
        print(item)
        
    print(item)
    
    

    看代码写结果:

    例十:

    def func():
        for item in range(10):
            pass
        print(item)
    func()
    
    

    看代码写结果:

    例十一:

    item = '老男孩'
    def func():
        item = 'alex'
        def inner():
            print(item)
        for item in range(10):
            pass
        inner()
    func()
    
    

    看代码写结果:

    例十二:

    l1 = []
    def func(args):
        l1.append(args)
        return l1
    print(func(1))
    print(func(2))
    print(func(3))
    
    

    看代码写结果:

    例十三:

    name = '宝元'
    def func():
        global name
        name = '男神'
    print(name)
    func()
    print(name)
    
    

    看代码写结果:
    例十四:

    name = '宝元'
    def func():
        print(name)
    func()
    
    

    看代码写结果:
    例十五:

    name = '宝元'
    def func():
        print(name)
        name = 'alex'
    func()
    
    

    看代码写结果:
    例十六:

    def func():
        count = 1
        def inner():
            nonlocal count
            count += 1
            print(count)
        print(count)
        inner()
        print(count)
    func()
    
    

    看代码写结果:
    例十七:

    def extendList(val,list=[]):
        list.append(val)
        return list
    
    list1 = extendList(10)
    list2 = extendList(123,[])
    list3 = extendList('a')
    
    print('list1=%s'%list1)
    print('list2=%s'%list2)
    print('list3=%s'%list3)
    
    

    看代码写结果:
    例十八:

    def extendList(val,list=[]):
        list.append(val)
        return list
    print('list1=%s'% extendList(10))
    print('list2=%s'% extendList(123,[]))
    print('list3=%s'% extendList('a'))
    
    

    2.用你的理解解释一下什么是可迭代对象,什么是迭代器。

    3.使用while循环实现for循环的本质(面试题)

    day12

    1.整理今天笔记,课上代码最少敲3遍。
    2.用列表推导式做下列小题
    过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
    求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
    求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]]
    求出50以内能被3整除的数的平方,并放入到一个列表中。
    构建一个列表:['python1期', 'python2期', 'python3期', 'python4期', 'python6期', 'python7期', 'python8期', 'python9期', 'python10期']
    构建一个列表:[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
    构建一个列表:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    有一个列表l1 = ['alex', 'WuSir', '老男孩', '太白']将其构造成这种列表['alex0', 'WuSir1', '老男孩2', '太白3']
    3.有以下数据类型:
    x = {
    'name':'alex',
    'Values':[{'timestamp':1517991992.94,
    'values':100,},
    {'timestamp': 1517992000.94,
    'values': 200,},
    {'timestamp': 1517992014.94,
    'values': 300,},
    {'timestamp': 1517992744.94,
    'values': 350},
    {'timestamp': 1517992800.94,
    'values': 280}
    ],}
    将上面的数据通过列表推导式转换成下面的类型:[[1517991992.94, 100], [1517992000.94, 200], [1517992014.94, 300], [1517992744.94, 350], [1517992800.94, 280]]

    4.构建一个列表,列表里面是三种不同尺寸的T恤衫,每个尺寸都有两个颜色(列表里面的元素为元组类型)。
    colors = ['black', 'white']
    sizes = ['S', 'M', 'L']

    1. 构建一个列表,列表里面的元素是扑克牌除去大小王以后,所有的牌类(列表里面的元素为元组类型)。
      l1 = [('A','spades'),('A','diamonds'), ('A','clubs'), ('A','hearts')......('K','spades'),('K','diamonds'), ('K','clubs'), ('K','hearts') ]

    6.简述一下yield 与yield from的区别。

    7.看代码求结果(面试题):
    v = [i % 2 for i in range(10)]
    print(v)

    v = (i % 2 for i in range(10))
    print(v)

    for i in range(5):
         print(i)
    print(i)
    
    

    第二周大作业

    1.整理本周笔记,画思维导图,上传到码云.
    2.将考试的卷子重做一下
    3.用代码模拟博客园系统

    项目分析:
    一.首先程序启动,显示下面内容供用户选择:

    1.请登录
    2.请注册
    3.进入文章页面
    4.进入评论页面
    5.进入日记页面
    6.进入收藏页面
    7.注销账号
    8.退出整个程序

    二.必须实现的功能:
    1.注册功能要求:
    a.用户名、密码要记录在文件中。
    b.用户名要求:只能含有字母或者数字不能含有特殊字符并且确保用户名唯一。
    c.密码要求:长度要在6~14个字符之间。
    d.超过三次登录还未成功,则退出整个程序。

    2.登录功能要求:
    a.用户输入用户名、密码进行登录验证。
    b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,跳转到登录。(修改全局变量)

    3.进入文章页面要求:
    提示欢迎xx进入文章页面。(xx是当前登录的用户名)

    4.进入评论页面要求:
    提示欢迎xx进入评论页面。

    5.进入日记页面要求:
    提示欢迎xx进入日记页面。

    6.进入收藏页面要求:
    提示欢迎xx进入收藏页面。

    7.注销账号要求:
    不是退出整个程序,而是将已经登录的状态变成未登录状态(访问3~7选项时需要重新登录)。

    8.退出整个程序要求:
    就是结束整个程序。

    4.用代码实现三次用户登录及锁定(选做,时间充足建议做一做)
    项目分析:
    一.首先程序启动,显示下面内容供用户选择:
    1.注册
    2.登录

    a.用户选择登录的时候,首先判断用户名在userinfo.txt表中存在不在,存在就不能进行注册
    b.当注册的用户名不存在的时候将用户名和密码写入到userinfo.txt文件中
    c.用户选择登录的时候,判断用户输入的账号和密码是否userinfo.txt存储的一致
    d.用户名和密码一致就终止循环,并提示用户登录成功!
    e.用户名和密码不一致,只有三次登录机会,三次过后提示用户名被锁定,请联系管理员!并终止循环
    f.当用户名输出三次,再次运行程序.登录锁定的账号继续提示用户名被锁定,请联系管理员!

    day13

    1.将今日课上的代码敲3遍。
    2.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出):

    1. 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
    l=[{'name':'alex'},{'name':'y'}]
    
    
    1. 用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
    l=[{'name':'alex'},{'name':'y'}]
    
    

    3)用filter来处理,得到股票价格大于20的股票名字

    shares={
     'IBM':36.6,
     'Lenovo':23.2,
     'oldboy':21.2,
     'ocean':10.2,
             }
    
    

    4)有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
    结果:list一下[9110.0, 27161.0,......]

    portfolio = [
      {'name': 'IBM', 'shares': 100, 'price': 91.1},
        {'name': 'AAPL', 'shares': 50, 'price': 543.22},
        {'name': 'FB', 'shares': 200, 'price': 21.09},
        {'name': 'HPQ', 'shares': 35, 'price': 31.75},
        {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}]
    
    

    5)还是上面的字典,用filter过滤出单价大于100的股票。

    6)有下列三种数据类型,

     l1 = [1,2,3,4,5,6]
     l2 = ['oldboy','alex','wusir','太白','日天']
     tu = ('**','***','****','*******')
    
    

    写代

  • 相关阅读:
    Method "goodsList" has already been defined as a data property
    mac安装淘宝淘宝镜像失败
    webstrom git配置设置时右侧没有内容 select configuration element in the tree to edit its setting
    vue下标获取数据时候,页面报错
    透明度全兼容
    clipboard冲突mui.css,移动端实现复制粘贴
    Vue价格四舍五入保留两位和直接取两位
    实习大总结
    day33
    day31
  • 原文地址:https://www.cnblogs.com/zhangshan33/p/11419333.html
Copyright © 2020-2023  润新知