zoukankan      html  css  js  c++  java
  • Python基础知识练习题(一)


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

     
        python解释器 python 1.py


      2、简述位、字节的关系


        8 bits = 1 byte (8位一字节)
        计算机处理以字节(byte)为单位
        存储以位(bit)为单位


      3、简述ascii、unicode、utf-­‐8、gbk的关系

      ascii 英文编码,8个二进制位代表一个字母,总共可以有2的8次方减去1个等于255个

      gbk是中文编码,是用的16个二进制代表一个汉字,有点浪费空间

      uft-8也是中文编码,也是用的16个二进制代表一个汉字,但是能用8位表示就用位了


      4、请写出“李杰”分别用utf-­‐8和gbk编码所占的位数 
        utf-8:6
        gbk:4

       a="李杰"
        python3:
        len(a) >>>>输出:李 杰 2个字符

        python2:
        len(a) >>>输出:六个乱码 6个字节


      5、Pyhton单行注释和多行注释分别用什么?
         单行: #

        多行: ''' ''' or """ """

     

    6、声明变量注意事项有那些?


      声明:变量只能由字母、下划线、数字组成,且数字不能开头
       尽量不适用python内置的名字(sum,class。。。。。)


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

    a=5
    v=int.bit_length(a)
    print(v)

     


    8、布尔值分别有什么?


        True   False

     "" >>>False     "有内容" >>> True


     0 >>>False    其他 >>>True

    ######################################
      a = 123 b="i"
      bool(a) bool(b) >>>>>>布尔值

    ######################################
     类型转换: new = 要转换类型(old)
     例: 字符串转换为数字

    #字符串转换成数字    其他类型转换方式相同
    a="123"    
    b=int(a) 

     


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


      a = "alex"
      b = a.capitalize()
      print(a)
      print(b)
     请写出输出结果:
      "alex"
      "Alex"

     

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

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

        name = " WitharusH"
        v = name.strip()  #清楚字符串中左右两边的空格   中间的无法去除    
        print(name)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py


    WitharusH

    b.判断name变量对应的值是否以"wi" 开头,并输出结果

    name = " WitharusH"
    v = name.startswith('Wi')     #判断字符串以什么开头
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    True

    c.判断name变量对应的值是否以 "H" 结尾,并输出结果

    name = " WitharusH"
    v = name.endswith('H')
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    True

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

    name = " WitharusH"
    v = name.replace('i','p')
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
     WptharusH

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

    name = " WitharusH"
    v = name.split('r')
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    [' Witha', 'usH']

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

       列表

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

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

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
     WITHARUSH

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

    name = " WitharusH"
    v = name.lower()
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
     witharush

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

    name = " WitharusH"
    print(name[1])  #第二个字符是下标为1的字符

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    W

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

      方法一:

    name=" WitharusH"
    n=0
    while n <3:
     print(name[n])
     n=n+1

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py

    W
    i

      方法二:

    name=" WitharusH"
    print(name[0:3])    #切片

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
     Wi

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

    name=" WitharusH"
    print(name[-2:])

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    sH

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

    name = " WitharusH"
    for item in range(len(name)):
        if name[item] == "r":
            print(name[item], item)
        else:
            pass

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    r 6

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

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

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
     Witharus

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

      是;只要可执行for 循环就约等于可迭代对象

    for item in "我最帅":
      print(item)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py


    22、请用代码实现:
      a.利用下划线将列表的每一个元素拼接成字符串,li="alexericrain"

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

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py

    a_l_e_x_e_r_i_c_r_a_i_n

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

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    a_l_e_x_e_r_i_c_r_a_i_n

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

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

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    alex_eric_rain

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

      2:在python2.7里面,range可以直接帮我们打印出来范围内的数字,这个就有缺点了,比如我打印出来1万个数字,它得先把一万个数字打印出来,这个时候我们得等着了。并且占用很多内存

            若想和python3里的range效果相同   >>>>>>用 xrange 
      3:range创建之后,并不会把这些数字打印出来,而是在什么时候调用的时候才去一个一个的打印,比如for循环调用的时候才会挨个打印,这样就省内存了

      #############################################

      range(起始,终止,步长)
      range(0,100,1) 从0到100
      range(100,0,-1) 从100到0

      #############################################

    24、实现一个整数加法计算器:
        如:
            content  =  input('请输入内容:')    #  如:  5+9  或  5+  9  或  5  +  9  

    content = input('请输入内容:')  # input输入的值是字符串类型,先用split从‘+’号分隔出‘5’和‘9’ 再转换int类型做加法
    v1, v2 = content.split('+')
    v1 = int(v1)
    v2 = int(v2)
    print(v1 + v2)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    请输入内容: 5 + 9
    14

    25、计算用户输入的内容中有几个十进制小数?几个字母?
        如:
            content  =  input('请输入内容:')    #  如:asduiaf878123jkjsfd-­‐213928  

    num = 0
    zimu = 0
    content = input('请输入内容: ')
    for item in content:
        if item.isdigit() == True:
            num += 1
        elif item.isalpha() == True:
            zimu += 1
        else:
            pass
    print('十进制数字共有: ', num)
    print('字母共有: ', zimu)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    请输入内容: asdasdasdas-sda2165
    十进制数字共有: 4
    字母共有: 14

    26、简述  int  和  9  等数字   以及   str  和  "xxoo"  等字符串的关系?

      类和对象的关系
      int str 是不同类
      9 ”xxoo"是根据类所创造的对象

    27、制作趣味模板程序
        需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
             
             如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx

    c = "帅气的{0},最喜欢{1}"
    a = input(">>>")
    b = input(">>>")
    v = c.format(a, b)
    print(v)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    >>>Witharush
    >>>Python
    帅气的Witharush,最喜欢Python

    28、制作随机验证码,不区分大小写。
        流程:
            -­‐  用户执行程序
            -­‐  给用户显示需要输入的验证码
            -­‐  用户输入的值
                用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
            生成随机验证码代码示例:

     

      方法1: 先判断输入的字母是否为大写 若是 则判断  若不是 先转换成大写再判断

    def check_code():
        import random
        check_code = ''
        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)
            check_code += str(temp)
        return check_code
    
    
    while True:
        code = check_code()
        print(code)
        v = input(">>>")
        if v.isupper() == True:
            if v == code:
                print('正确')
                break
            else:
                print('错误')
        elif v.isupper() == False:
            v = v.upper()
            if v == code:
                print('正确')
                break
            else:
                print('错误')
    View Code

      方法2:2:直接把输入的字母改成大写的进行判断,省了近一半的判断代码

    def check_code():
        import random
        check_code = ''
        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)
            check_code += str(temp)
        return check_code
    
    
    while True:
        code = check_code()
        print(code)
        v = input(">>>")
        v = v.upper()
        if v == code:
            print('正确')
            break
        else:
            print('错误')

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    MPBN
    >>>mpbn
    正确

    29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:

    方法一

    a = input(">>>")
    a = a.replace("", "*")
    a = a.replace("", "*")
    print(a)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    >>>Witharush大帅逼
    Witharush大**

    方法二

    while True:
        name = input('请输入内容:')
        if "帅逼" in name in name:
            v = name.replace('帅逼', '**')
            print(v)
            exit()
        else:
            print(name)

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    请输入内容:witharush大帅逼
    witharush大**

     

     

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

    s = " "
    while True:
        name = input("请输入名字")
        password = input("请输入密码")
        mail = input("请输入邮箱")
        temp = "{0}	{1}	{2}
    "
        name1 = name[0:20]          #只输出前20个字符
        password1 = password[0:20]
        mail1 = mail[0:20]
        v = temp.format(name1, password1, mail1)
        s = s + v
        if name == 'q' or name == 'Q':
            break
    print(s.expandtabs(20))

    D:PyProjectday11venvScriptspython.exe D:/PyProject/day11/first_homework.py
    请输入名字a
    请输入密码s
    请输入邮箱d
    请输入名字z
    请输入密码x
    请输入邮箱c
    请输入名字q
    请输入密码w
    请输入邮箱e
    a s d
    z x c
    q w e

     

  • 相关阅读:
    记录两种获取配置文件的方法
    jsp-自定义标签
    转载 -jsp静态包含和动态包含的区别
    Linux基础知识笔记
    关于HTTP协议
    关于orcale创建type的一些小经验(遇到的坑)
    servlet处理乱码之post和get
    发布restful类型的接口
    ros2 dashing 安装失败指南
    exit回调
  • 原文地址:https://www.cnblogs.com/witharush/p/9383806.html
Copyright © 2011-2022 走看看