• python基础练习题30道


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

    答:1>可以在python /home/xxxx.py

         2>cd /home    ./xxxx.py  因为py脚本里面指定了python解释器的位置

    2、简述位、字节的关系

    答:1Byte(字节)=8bit(二进制位)

    3、简述ascii、unicode、uft-8、gbk的关系

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

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

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

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

    6   4

    5、python单行注释和多行注释分别用什么?

    答:单行注释用#   多行注释用"""        """

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

    答:变量 = "abc"    变量 空格 = 空格 双引号之间的字符就是变量,在调用的时候要用吧变量用括号括起来()

    变量,只能由字母、数字、下划线组成

    特例:不能以数字开头

    python的关键字也不能使用

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

    答:
    n1 = 5
    v = n1.bit_length()
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    3

    8、布尔值分别有什么?

    答:True   False

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

    a = "gouguoqi"
    b = a.capitalize()
    print (a)
    print (b)

    结果是

    gouguoqi

    Gouguoqi

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

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

    name = " gouguoQ"
    v = name.strip()
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    gouguoQ
    
     

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

    name = " gouguoQ"
    v = name.startswith('go')
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    False

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

    name = " gouguoQ"
    v = name.endswith('Q')
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    True

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

    name = " gouguoQ"
    v = name.replace('g','p')
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
     poupuoQ

    e.将name变量对应的值根据"o"分割,并输出结果

    name = " gouguoQ"
    v = name.split('o')
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    [' g', 'ugu', 'Q']

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

    列表

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

    name = " gouguoQ"
    v = name.upper()
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
     GOUGUOQ

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

    name = " gouguoQ"
    v = name.lower()
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
     gouguoq

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

    name = " gouguoQ"
    v = name[2]
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    o

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

    name = " gouguoQ"
    v = name[0:3]
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
     go

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

    name = " gouguoQ"
    v = name[-2:]
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    oQ
    
     

    l.请输出name变量中的值"Q的索引的位置

    name = " gouguoQ"
    v = len(name)
    for n in range(v):
        if (name[n]) != "Q":
            continue
        else:
            print (n,name[n])
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    7 Q

    m.获取子序列,仅不包含最后一个字符,如:woaini则获取woain  root则获取roo

    name = " gouguoQ"
    print (name[0:-1])
    
     
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
     gouguo

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

    for n in "woaini":
        print (n)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    w
    
    o
    
    a
    
    i
    
    n
    
    i

    只要能被for循环,这个值就是  可迭代对象

    #类,类型

    str

        各种方法

          ......

    #对象,根据str类型创建一个对象,S1,在shell我们就叫变量

    S1 = "gouguoqi"

    22、请用代码实现

        a.利用下划线将列表的每一个元素拼接成字符串  li = "gouguoqi"

    li = "gouguoqi"
    v = "_".join(li)
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    g_o_u_g_u_o_q_i
    
       

        b.利用下划线将列表的每一个元素拼接成字符串  li = ['gou','guo','qi']

    li = ['gou','guo','qi']
    v = "_".join(li)
    print (v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    gou_guo_qi
    
     

    23、在python2和3中range有啥区别

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

    在python3里面,range创建之后,并不会把这些数字打印出来,而是在什么时候调用的时候才去一个一个的打印,比如我for循环调用的时候才会挨个打印,这样就省内存了

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

    如:

         content = input("请输入内容:")   如:5+9或3+6或9008+2566
    
    content = input('请输入内容:格式是5+9 7+9 3+7 ')
    v = content.split('+')   先把输入的2个数字以+分割成2个字符串
    n1 = int(v[0])   把第一个数字转换成int类型
    n2 = int(v[1])   把第二个数字转换成int类型
    n3 = n1 + n2
    print (n1,'+',n2,'=',n3)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    请输入内容:格式是5+9 7+9 3+7 22+33
    
    22 + 33 = 55
     

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

    如:

        content = input ('请输入内容:')    #如:adsffjjhb87902kdjhs-+9802jkl

    思路是:定义2基数都是0,一个是字母的一个是数字的

    把字符串挨个打印出来,打印出来一个,判断一个,如果是数字,就把数字的基数加一,如果是字母就把字母的基数加一,就不是数字也不是字母,就pass,最后打印出num  zimu

    content = input('请输入内容:计算十进制小数个数和字母个数 ')
    num = 0
    zimu = 0
    for n in content:
        if n.isdecimal() == True:
            num+=1
    #        print ('数字个数 ',(num))
        elif n.isalpha() == True:
            zimu+=1
    #        print ('字母个数',zimu)
        else:
            pass
    print ('数字个数 ',(num))
    print ('字母个数',zimu)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    请输入内容:计算十进制小数个数和字母个数 56gou<<<ijh78
    
    数字个数  4
    
    字母个数 6

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

    int就是数字类型,str就是字符串类型,xxoo就是字符串

    int   str都是类,类型, 9 xxoo这些都是根据类创建的对象

    27、制作趣味模板程序

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

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

    name = input("请输入你的名字: ")
    place = input("请输入你经常去的地方: ")
    like = input("请输入你平时的爱好: ")
    print  ('猥琐的',name,',','最喜欢在',place,'地方',like)
    
     
    
    test = "猥琐的{0},最喜欢在{1}地方干{2}"
    name = input("请输入你的名字: ")
    place = input("请输入你经常去的地方: ")
    like = input("请输入你平时的爱好: ")
    v = test.format(name,place,like)
    print(v)
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    请输入你的名字: 修电脑
    
    请输入你经常去的地方: 网吧
    
    请输入你平时的爱好: 撸管
    
    猥琐的修电脑,最喜欢在网吧地方干撸管
    
     

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

    流程:

       - 用户执行程序

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

       - 用户输入的值

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

    生成随机验证码代码示例:

    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
    code = check_code()
    print(code)

    解答:

    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
    code = check_code()
    while True:
        code = check_code()
        print (code)
        v = input('请输入验证码>>>>')
        v1 = v.upper()
        if v1 == code:
            print ('验证码正确')
            break
        else:
            pass
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    TGHM
    
    请输入验证码>>>>dfgh
    
    AEP5
    
    请输入验证码>>>>aep5
    
    验证码正确

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

    如 "苍井空"  "东京热"  则将内容替换为***

    思路是:创建2个变量v1  v2,用find方法来判断用户输入的字符串里面是否有敏感词,有的话find的值就不是-1,只有find的值是-1的时候才是没有敏感词的

    然后用if判断,如果2个值都等于-1,才证明不包含定义的2个敏感词,就正常打印,如果包含一个敏感词或者是包含2个敏感词都包含,就执行替换的操作

    替换操作思路是,先替换苍井空。替换完成之后,给它赋值一个新的变量名字,再把新的变量里面的东京热再次替换下,最后打印出来最后的变量就是2者都替换过了的结果

    shuru = input("请输入字符串")
    v = shuru.find('苍井空')
    v1 = shuru.find('东京热')
    if v == -1 and v1 == -1:
        print (shuru)
    elif v != -1 or v1 != -1:
        shuru1 = shuru.replace('苍井空','*****')
        shuru2 = shuru1.replace('东京热','*****')
        print (shuru2)
    # elif v1 != -1:
    #     shuru.replace('东京热','*****')
    #     shuru1 = shuru.replace('东京热','*****')
    #     print (shuru1)
    else:
        pass
    
    C:python35python3.exe D:/pyproject/day11数据类型的方法/str-way.py
    
    请输入字符串打算发松岛枫ppp34324苍井空了。。东京热了
    
    打算发松岛枫ppp34324*****了。。*****了

    用in来实现其实更简单些,代码如下

    如果有敏感词的话就题把敏感词替换成*****并且赶紧退出,没有敏感词的话可以继续输入

    while True:
        name = input('请输入内容:')
        if "苍井空" in name or "东京热" in name:
            v = name.replace('苍井空', '*****')
            v1 = v.replace('东京热', '*****')
            print(v1)
            exit()
        else:
            print(name)

    30、制作表格

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

    s = ""
    while True:
        v1 = input('请输入你的名字')
        v2 = input('请输入你的密码')
        v3 = input('请输入你的邮箱')
        v4 = v1[0:19]
        v5 = v2[0:19]
        v6 = v3[0:19]
        test = "{0}	{1}	{2}
    "
        v = test.format(v4, v5, v6)
        b = v.expandtabs(20)
        s = s + b
        if v1 == "q" or v2 == "q" or v3 == "q" or v1 == "Q" or v2 == "Q" or v3 == "Q":
            break
    print(s)
    
    请输入你的名字q
    
    请输入你的密码ww
    
    请输入你的邮箱ee
    
    aa                  bb                  cc
    
    dd                  dd                  dd
    
    ff                  ff                  ff
    
    q                   ww                  ee
    
     
  • 相关阅读:
    Linux shell 脚本中变量的数学计算【转】
    Ubuntu上配置Eclipse:安装CDT【转】
    第一个Java程序示例——Hello World!【转】
    Cmake的介绍和使用 Cmake实践【转】
    CMake使用总结【转】
    Ubuntu 16.04安装JDK/JRE并配置环境变量【转】
    Linux进程间通信——使用信号量【转】
    wpa_supplicant介绍【转】
    【转】Android屏幕适配全攻略(最权威的官方适配指导)
    SQL2005备份数据库到远程服务器中
  • 原文地址:https://www.cnblogs.com/gouguoqilinux/p/9103072.html
Copyright © 2020-2023  润新知