zoukankan      html  css  js  c++  java
  • 【练习】Python第一,二次

    练习一

    1,执行Python脚本的两种方式

    a,Python解释器 b,Python  1.py

    2,简述位和字节的关系

    一个字节等于8位

    3,简述ascii,unicode,utf-8,gbk的关系

    最开始ascii,表示信息有限。后来发明unicode给全球的字符编码,再后来为了节约信息位采用了压缩形式utf-8,gbk是使用两个字节的汉字专用编码

    4,请写出“李杰”分别用utf-8和gbk编码所占的位数

    utf-8:6字节

    gbk:4字节

    a = "李杰"

    Python3

        len(a) = 2

        使用for循环,打印每个字符:李,杰

    Python2

        len(a) = 6 #按字节计算

        使用for循环,循环输出六次:但是都是乱码,每个乱码代表一个字节

        v = "李杰"

        for item in v:

            print(item)

    5,Python单行注释和多行注释分别用什么?

    单行注释#

    多行注释““”    ‘’‘

    6,声明变量注意事项有哪些?

     字母,数字,下划线。数字不能开头,不能用python关键字,最好不用python内置字符

    7,如有一变量n1 = 5,请使用int提供的方法,得到该变量最少可以用多少个二进制位表示

    ni = 10
    v = ni.bit_length()
    print(v)

    8,布尔值分别有什么?

    True False 首字母大写

    ”“(空字符串), 0,

    9,阅读代码,请写出执行结果

    a = "alex"
    b = a.capitalize()
    print(a) #输出alex
    print(b) #输出Alex

    字符串不可更改

    10,写代码,有如下变量,请按照要求实现每个功能

    a,移除name变量对应的值两边的空格,并输入移除后的内容

    name = " aleX"
    print(name)
    name = name.strip()
    print(name)

    b,判断name变量对应的值是否以”al“开头,并输出结果

    v = name.startswith('al')
    print(v)

    c,判断name变量对应的值是否以”X“结尾,并输出结果

    v = name.endswith('X')
    print(v)

    d,将name变量对应的值中的”l“替换为”p“,并输出结果

    v = name.replace('l','p')
    print(v)

    e,将name变量对应的值根据”l“分割,并输出结果。

    v = name.partition('l')
    print(v)

    f,请问,上一题分割之后得到值是什么类型(可选)?

    print(type(v))

    g,将name变量对应的值便大写,并输出结果

    v = name.upper()
    print(v)
    print(name)

    h,将name变量对应的值变小写,并输出结果

    v = name.lower()
    print(v)

    i,请输出name变量对应的值的第2个字符?

    print(name[1])

    j,请输出name变量对应的值的前3个字符?

    print(name[0:3])

    k,请输出name变量对应的值的后2个字符

    name = "rooteded"
    print(name[-2:len(name)])

    l,请输出name变量对应的值中”e“所在索引位置

    print(name.index('e'))

    m,获取子序列,仅不包含最后一个字符。如oldboy则获取oldbo,root则获取roo

    name = "oldboy"
    print(name[0:-1])

    21,字符串是否是可迭代对象?如可以请使用for循环每一个元素?

    #字符串是可迭代对象,可以用for循环
    for item in name:
    print(item)

    22,请用代码实现:

    a,利用下划线将列表的每一个元素拼接成字符串,li = ”alexericrain“

    li = "alexericrain"
    v = '_'.join(li)
    print(v)

    b,利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']

    li = ['alex','eric','rain']
    v = '_'.join(li)
    print(v)

    23,Python2中的range和Python3中的range的区别?

    # Python2中直接创建在内容中,xrange相当于python3中的range
    # python3中只有for循环时,才一个一个创建,保护机制
    # r1 = range(10)
    # r2 = range(1,10)

    24,实现一个整数加法计数器:

    content = input('请输入内容: ’) #如: 5+9

    content = input("请输入内容:")
    li = content.partition('+')
    print(li)
    li[0].strip()
    li[2].strip()
    print(int(li[0])+int(li[2]))

    25,计算用户输入的内容中有几个十进制小数?几个字母?

    content = input('请输入内容: ’) #如: adfadfd78797sdfsdf-998afd

    count_m = 0
    count_a = 0
    content = input("请输入内容:")
    for item in content:
    if(item.isdecimal()):
    count_m += 1
    elif (item.isalpha()):
    count_a += 1
    else:
    continue
    print(count_m)
    print(count_a)

    26,简述int和9等数字,以及str和”xxoo“等字符串的关系?

    int类,9实例,
    str类,“xxoo”对象

    27,制作趣味模板程序

        需求:等待用户输入名字,地点,爱好,根据用户的名字和爱好进行任意显示

        如:敬爱可亲的XXX,最喜欢在XXX地方干XXX

    namein = input("请输入姓名:")
    positionin = input("请输入地点:")
    doingin = input("请输入爱好: ")
    template1 = "敬爱可亲的{name},最喜欢在{position}地方干{doing}"
    print(template1)
    v = template1.format(name=namein,position=positionin,doing =doingin)
    print(v)

    28,制作随机验证码,不区分大小写

        流程:

        -用户执行程序

        -用户显示需要输入的验证码

        -用户输入的值

            用户输入的值和显示的值相同时显示正确信息;否则继续生成随机验证码继续等待用户输入

        生成随机验证码代码示例

    def check_code():
    import random
    checkcode = ''
    for i in range(4):
    current = random.randrange(0,4)
    if current != i:
    temp = chr(random.randint(65,90))
    else:
    temp = random.randint(0,9)
    checkcode += str(temp)
    return checkcode

    while True:
    code = check_code()
    print(code)
    user_input = input("请输入验证码: ")
    if code == user_input:
    print("输入正确,退出")
    break
    else:
    continue

    29,开发敏感词过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊字符,如”苍老师“等,则将内容替换为 ***

    content = input("please input:")
    content = content.replace('苍老师','***')
    print(content)

    30,制作表格

        循环提示用户输入:用户名,密码,邮箱(要求用户输入的长度不超过20个字符,如果超过则只有前20个字符有效)如果用户输入q或Q表示不再继续输入,将用户输入的内容以表格形式打印。

    s = ''
    while True:
    user_name = input("请输入用户名: ")
    user_password = input("请输入密码: ")
    user_email = input("请输入邮箱: ")
    temp = "{0}\t{1}\t{2}\n"
    v = temp.format(user_name,user_password,user_email)
    s = s + v
    if user_name == 'q' or user_name =='Q':
    break
    print(s.expandtabs(20))

    练习二

    1,请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain']

    v = '_'.join(li)
    print(v)
    
    #有数字的情况
    li = ['alex','eric',123]
    li[2] = str(li[2])
    v = '_'.join(li)
    print(v)

    2,查找列表中元素,移除每个元素的空格,并查找以a或A开头,并且以x结尾的所有元素。

     li = ["alex"," aric","Alex","Tony","rain"]

    for item in range(0,len(li)):
        li[item] = li[item].strip()
    print(li)
    for item in li:
        if item.upper().startswith('A') == True and item.endswith('x'):
            print(item)

    tu = ("alex"," aric","Alex","Tony","rain")

    # tu元组不支持修改一级元素
    for item in tu:
        if item.upper().startswith('A') == True and item.endswith('x'):
            print(item)

    dic = {'k1':"alex",'k2':' aric',"k3":"Alex","k4":"Tony"}

    print(dic)
    for item in dic.items():
        dic.update({str(item[0]):str(item[1]).strip()})
    print(dic)
    for item in dic.values():
        if item.upper().startswith('A') == True and item.endswith('x'):
            print(item)

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

    li = ['alex','eric','rain']

    a,计算列表长度并输出

    print(len(li))

    b,列表中追加元素”seven“,并输出添加后的列表

    li.append("Seven")
    print(li)

    c,请在列表的第1个位置插入元素 ”Tony“,并输出添加后的列表

    li.insert(0,"Tony")
    print(li)

    d,请修改列表第2个位置的元素为”Kelly“,并输出修改后的列表

    li[1] = "Kelly"
    print(li)

    e,请删除列表中的元素"eric",并输出修改后的列表

    li.remove("eric")
    print(li)

    f,请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表

    v = li.pop(1)
    print(v,li)

    g,请删除列表中的第3个元素,并输出删除元素后的列表

    v = li.pop(2)
    print(li)

    h,请删除列表中的第2至4个元素,并输出删除元素后的列表

    li = ["手机","电脑","鼠标垫","游艇","打印机"]
    del li[1:4]
    print(li)

    i,请将所有的元素反转,并输出反转后的列表

    li.reverse()
    print(li)

    j,请使用for,len,range输出列表的索引

    for idx in range(len(li)):
        print(idx)

    k,请使用enumerate输出列表元素和序号(序号从100开始)

    for idx,elem in enumerate(li,100):
        print(idx,elem)

    l,请使用for循环输出列表的所有元素

    for item in li:
        print(li)

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

    li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]

    a,请根据索引输出"Kelly"

    b,请使用索引找到'all'元素并将其修改为”ALL“,如li[0][1][9]

    print(li[2][1][1])
    li[
    2][2] = li[2][2].upper() print(li)

    5,写代码,有如下元组,按照要求实现每一个功能

    tu = ('alex','eric','rain')

    a,计算元组长度并输出

    print(len(tu))

    b,获取元组的第2个元素,并输出

    print(tu[1])

    c,获取元组的第1-2个元素,并输出

    print(tu[0:2])

    d,请使用for输出元组的元素

    for item in tu:
        print(item

    e,请使用for,len,range输出元组的索引

    for item in range(len(tu)):
        print(item)

    f,请使用enumerate输出元组元素和序号(序号从10开始)

    for idx,elem in enumerate(tu,10):
        print(idx,elem)

    6,有如下变量,请实现要求的功能

    tu = ("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])

    a,讲述元组的特性

    # 一级元素不能增,删,改

    b,请问tu变量中的第一个元素”alex“是否可以被修改

    # 不能

    c,请问tu变量中的”k2“对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

    # 列表,可以被修改
    tu[1][2]["k2"].append("Seven")
    print(tu)

    d,请问tu变量中的”k3“对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

    # 元组,不能修改

    7,字典

    dic = {'k1':"v1","k2":"v2","k3":[11,22,33]}

    a,请循环输出所有的key

    for item in dic:
        print(item)

    b,请循环输出所有的value

    for item in dic.values():
        print(item)

    c,请循环输出所有的key和value

    for k,v in dic.items():
        print(k,v)

    d,请在字典中添加一个键值对,"k4":"v4",输出添加后的字典

    dic.update({"k4":"v4"})
    print(dic)

    e,请在修改字典中“k1”对应的值为“alex”,输出修改后的字典

    dic.update({"k1":"alex"})
    print(dic)

    f,请在k3对应的值中追加一个元素44,输出修改后的字典

    dic["k3"].append(44)
    print(dic)

    g,请在k3对应的值的第1个位置插入个元素18,输出修改后的字典

    dic["k3"].insert(0,18)
    print(dic)

    8,转换

    a,将字符串 s = "alex" 转换成列表

    s = "alex"
    li = list(s)
    print(li)

    b,将字符串 s = ”alex“ 转换成元组

    s = " alex"
    tu = tuple(s)
    print(tu)

    c,将列表li = ["alex","seven"] 转换成元组

    li = ["alex","seven"]
    tu = tuple(li)
    print(tu)

    d,将元组tu = ['Alex',"seven"]转换成列表

    tu = ['Alex',"seven"]
    li = list(tu)
    print(li)

    e,将列表 li = ["alex","seven"]转换成字典且字典的key按照10开始向后递增

    dic = {}
    li = ["alex","seven"]
    for idx,item in enumerate(li,10):
        dic.update({idx:item})
    print(dic)

    9,元素分类

        有如下集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。即:{'K1':大于66的所有的值,'k2':小于66的所有的值}

    li = [11,22,33,44,55,66,77,88,99,90]
    d66 = []
    x66 = []
    dic ={}
    for item in li:
        if item > 66:
            d66.append(item)
            dic.update({"k1":d66})
        elif item < 66:
            x66.append(item)
            dic.update({"k2":x66})
        else:
            continue
    print(dic)

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

    商品 li = ["手机","电脑","鼠标垫","游艇"]

    a,允许用户添加商品

    b,用户输入序号显示内容

    while True:
        content = input("请输入:")
        if int(content) < len(li):
            print(li[int(content)])
        else:#如果大于列表的最大索引则添加内容
            add_cont = input("添加内容:")
            li.append(add_cont)
            print(li)

    11,用户交互显示类似省,市,县N级联动的选择

    a,允许用户增加内容

    b,允许用户选择查看某一个级别内容

    12,列举布尔值是False的所有值

     None,False,0,"",'',[],(),{}

    print(bool(None),bool(False),bool(0),bool(""),bool(''),bool([]),bool(()),bool({}))

    13,有两个列表

    l1 = [11,22,33]

    l2 = [22,33,44]

    a,获取内容相同的元素列表

    for item in l1:
        if item in l2:
            print(item)

    b,获取l1中有,l2中没有的元素列表

    for item in l1:
        if item not in l2:
            print(item)

    c,获取l2中有,l1中没有的元素列表

    for item in l2:
        if item not in l1:
            print(item)

    d,获取l1和l2中内容都不同的元素

    #b和c答案放到一起

    14,利用For循环和range输出

    a,For循环从大到小输出 1 - 100

    for i in range(100,0,-1):
        print(i)

    b,For循环从小到大输出 100 - 1

    for i in range(1,101):
        print(i)

    c,While循环从大到小输出 1 - 100

    i = 100
    while i > 0:
        print(i)
        i -= 1

    d,While循环从小到大输出 100 - 1

    i = 1
    while i < 101:
        print(i)
        i += 1

    15,购物车

        功能要求:

        要求用户输入总资产,例如:2000

        显示产品列表,让用户根据序号选择商品,加入购物车

        购买,如果商品总额大于总资产,提示账户余额不足,否则购买成功。

    goods = [

        {"name":"电脑","price":1999},

        {"name":"鼠标","price":10},

        {"name":"游艇","price":20},

        {"name":"美女","price":998},

    ]

    real_total = input("请输入最大购买额:")
    user_cart =[]
    user_add = 0
    
    while True:
        print("菜单列表")
        for i in range(0,len(goods)):
            print(i,goods[i])
        user_choose = input("请输入加入购物车数字:")
        user_add += goods[int(user_choose)]["price"]
    
        if user_add < int(real_total):
            user_cart.append(goods[int(user_choose)]["name"])
        else:
            print("超出最大购买额")
            user_add -= goods[int(user_choose)]["price"]
        print("购物车里:",user_cart)

    16,分页显示内容

    a,通过for循环创建301条数据,数据类型不限,如:

    alex-1    alex1@live.com pwd1

    alex-2    alex2@live.com pwd2

    alex-3    alex3@live.com pwd3

    b,提示用户 请输入要查看的页码,当用户输入指定的页码,则显示指定数据

     注意:

     -每页显示10条数据

     -用户输入页码是非十进制数字,则提示输入内容格式错误

    user_list =[]
    for i in  range(1,302):
        temp = {"name":"alex"+str(i),"email":"alex"+str(i)+"@live.com","pwd":"pwd"+str(i)}
        user_list.append(temp)
    # print(user_list)
    while True:
        s = input("请输入页码:  ")
        s = int(s)
        start = (s - 1) * 10
        end = s * 10
        result = user_list[start:end]
        for item in result:
            print(item, type(item))

    17,有1,2,3,4,5,6,7,8,8个数字,能组成多少个互不相同且无重复数字的两位数?

    li = [1,2,3,4,5,6,7,8]
    dst =[]
    for x in range(0,len(li)):
        for y in range(0,len(li)):
            if x != y:
                dst.append(li[x]*10 + li[y])
    print(dst)

    18,利用for循环和range输出9×9乘法表

    #法1
    for x in range(1,10):
        s = ""
        for y in range(1,x+1):
            s = s + str(x*y) + "\t"
        print(s.expandtabs(3))
    #法2
    for i in  range(1,10):
        for j in range(1,i+1):
            print(str(j) + "*" +str(i) + "=" + str(i*j) + "\t",end="")
        print("\n",end="")
    
    print("alex","haifeng","gangniang",sep='',end='66')
    #print 的分隔符和结尾的使用

    19,有以下列表,

    nums = [2,7,11,15,1,8,7]

    请找到列表中任意两个元素相加能够等于9的元素集合,如[(0,1),(4,5)] 

    a = []
    for x in nums:
        for y in nums:
            if x + y == 9:
                a.append((x,y),)
    print(a)
    #改成索引
    a = []
    for x in range(len(nums)):
        for y in range(len(nums)):
            if nums[x] + nums[y] == 9:
                a.append((x,y),)
    print(a)

    20,用Python开发程序自动计算方案:

        公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?

    for x in range(1,100//5):
        for y in range(1,100//3):
            for z in range(1,100):
                if x+y+z == 100 and 5*x + 3*y +z/3 == 100:
                    print(x,y,z)
  • 相关阅读:
    spring MVC的启动过程详解
    BeanFactory和applicationContext之间的区别
    spring的事务管理
    通用Mybatis的Crud搭建
    spring的IOC原理
    spring的AOP原理
    TortoiseSVN使用简介
    SVN简明教程
    POJO
    velocity 框架
  • 原文地址:https://www.cnblogs.com/fudonghai/p/9983530.html
Copyright © 2011-2022 走看看