zoukankan      html  css  js  c++  java
  • 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 = ('**','***','****','*******')
    
    

    写代

  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/zhangshan33/p/11419333.html
Copyright © 2011-2022 走看看