• Python学习


    1、昨日作业讲解

      1)简述ASCII码,unicode码,utf-8之间的编码关系?

        ASCII码只能显示英文,符号,数字,占1个字节

        unicode是万国码,占4个字节

        utf-8英文占1个字节,欧洲占2个字节,亚洲占3个字节

        utf-8是基于unicode开发的,unicode是基于ASCII开发的

      2)计算1-2+3...+99中除了88以外所有数的总和

    i = 1
    sum = 0
    while i < 100:
        if i == 88:
            i += 1
            continue
        if i % 2 ==0:
            sum -= i
        else:
            sum += i
        i += 1
    print(sum)
    i = 0
    j = -1
    sum = 0
    while i < 99:
        i += 1
        j = -j
        if i == 88:
            continue
        sum += i*j
    print(sum)

      3)等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符,提示:存在敏感字符,请重新输入,并允许用户重新输入并打印。敏感字符:小粉嫩,大铁锤

    mg_1 = "小粉嫩"
    mg_2 = "大铁锤"
    text = " "
    flag = 1
    while 1:
        text = input("请输入搜索内容:")
        if mg_1 not in text:
           if mg_2 not in text:
               break
           else:
               print("存在敏感字符,请重新输入!")
               continue
        else:
            print("存在敏感字符,请重新输入!")
            continue
    print(text)

     2、数据类型

      1)数据类型综述

        int    算术数据,常用于计算

        bool    布尔数据,常用于判断

        str    字符串数据,常用于存储少量数据,并进行操作

        list    列表数据,常用于存储大量的数据

        元祖    只读列表,即数据可以被查询,但不能被修改,字符串的切片操作同样适用于元祖

        dict      字典,Python中唯一的映射类型,采用键值对的形式存储数据

        集合    区间运算,不常用

      2)int类型

        主要用于数字的算术运算

    # bit_length() 当十进制用二进制表示时,最少使用的位数
    i = 11
    data = i.bit_length()
    print(data)

      3)bool类型

        布尔运算,反映条件是否成立

        True or False

      4)str类型

        4.1)字符串的索引与切片

          字符串a[索引:切片:步长]  切片原则:顾头不顾尾

          截取字符串的一段,形成新的字符串

    a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    print(a[0:3])   #   顾头不顾尾
    print(a[3:7])   #   顾头不顾尾
    print(a[18:])   #   默认到最后
    print(a[18:-1]) #   -1就是最后一位
    print(a[18:26:2])   #   加步长
    print(a[26:18:-2])  #   反向加步长

        4.2)字符串的常用操作

          4.2.1)字母大小写类

    name = "Shark Jiao and Lily"
    print(name.capitalize())    #   Shark jiao and lily     【首字母大写】
    print(name.upper())         #   SHARK JIAO AND LILY     【全部大写】
    print(name.lower())         #   shark jiao and lily     【全部小写】
    print(name.swapcase())      #   sHARK jIAO AND lILY     【大小写翻转】
    print(name.title())         #   Shark Jiao And Lily     【每个隔开的单词首字母大写】

          4.2.2)文本类

    name = "	Shark Jiao and Lily"
    print(name.center(24,"*"))      #   **Shark Jiao and Lily***    【居中,总长度,空白处填充】
    print(name.expandtabs())        #           Shark Jiao and Lily 【默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。】

          4.2.3)查找类

    name = "Shark Jiao and Lily"
    print(name.startswith('a',2,8))     #   True    【判断是否以...开头,顾头不顾尾】
    print(name.endswith('a',2,9))       #   True    【判断是否以...结尾,顾头不顾尾】
    print(name.find('a'))               #   2       【查询元素,返回下标索引,找不到返回-1】
    print(name.index('a'))              #   2       【查询元素,返回下标索引,找不到报错】

          4.2.4)过滤类

    name = " Shark Jiao and Lily "
    print(name.strip())     #   Shark Jiao and Lily     【默认去除前后空格,可添加符号】
    print(name.rstrip())     #    Shark Jiao and Lily     【默认去除右边空格,可添加符号】
    print(name.lstrip())     #   Shark Jiao and Lily      【默认去除左边空格,可添加符号】

          4.2.5)计数类

    name = "Shark Jiao and Lily"
    print(name.count('a'))     #   3     【计数字符串中元素的个数】
    print(len(name))            #   19    【计数字符串的长度】

          4.2.6)拆分类

    name = "Shark Jiao and Lily"
    print(name.split(' '))     #   ['Shark', 'Jiao', 'and', 'Lily']    【使字符串拆分为列表】
    print(name.replace('Shark','Python'))   #   Python Jiao and Lily    【字符替换】

          4.2.7)格式化输出

    print('我叫{},今年{}岁,我是{}生,{}欢迎你来到异世界!'.format('SharkJiao',18,'','SharkJiao'))
    print('我叫{0},今年{1}岁,我是{2}生,{0}欢迎你来到异世界!'.format('SharkJiao',18,''))
    print('我叫{name},今年{age}岁,我是{sex}生,{name}欢迎你来到异世界!'.format(name = "SharkJiao",sex = "",age = 18))

           4.2.8)is系列

    name = 'SharkJiao'
    print(name.isalnum())       #   字符串由字母或数字组成
    print(name.isalpha())       #   字符串只由字母组成
    print(name.isdigit())       #   字符串只由数字组成

          4.2.9)应用案例

    #   验证码应用
    s_str = 'acEQ'
    you_input = input('请输入验证码,不区分大小写')
    if s_str.upper() == you_input.upper():
        print('输入成功!')
    else:
        print('请重新输入...')

    3、for循环

    #   for...in...
    s = 'SharkJiao'
    for i in s:
        print(i)
    #   for...in...
    #   顾头不顾尾
    for i in range(1,10):
        print(i)
    #   for...in...
    #   顾头不顾尾
    for i in range(1,10,2):
        print(i)
    #   for...in...
    #   顾头不顾尾
    for i in range(10,1,-2):
        print(i)
    #   for...in...
    s = '我们是共产主义接班人!'
    if '共产主义' in s:
        print('您的输入存在敏感词...')

    4、数据类型转换

    #   int ---->   str
    i = 1
    s = str(i)
    print(type(i),type(s))
    #   <class 'int'> <class 'str'>
    #   str ---->   int
    i = '123'
    s = int(i)
    print(type(i),type(s))
    #   <class 'str'> <class 'int'>
    #   int ---->   bool
    i = 1
    s = bool(i)
    print(type(i),type(s))
    #   <class 'int'> <class 'bool'>
    #   bool ---->   int
    i = True
    s = int(i)
    print(type(i),type(s))
    #   <class 'bool'> <class 'int'>
    #   str ---->   bool
    i = '1'
    s = bool(i)
    print(type(i),type(s))
    #   <class 'str'> <class 'bool'>
    #   bool ---->   str
    i = True
    s = str(i)
    print(type(i),type(s))
    #   <class 'bool'> <class 'str'>
    #   s = ''  ---->   False
    #   非空字符串都是True
    #   s = '0' ---->   True
    s = ''
    if s:
        print('您的输入为空,请重新输入...')
    else:
        pass

     5、相关练习

    name = "aleX leNb"
    #   1、移除 name 变量对应的值两边的空格,并输出处理结果
    print(name.strip())
    #   2、移除 name 变量左边的'al',并输出处理结果
    print(name[2:])
    #   3、移除 name 变量右边的'Nb',并输出处理结果
    print(name[0:7])
    #   4、移除 name 变量开头的'a'与最后的'b',并输出处理结果
    print(name[1:8])
    #   5、判断 name 变量是否以'al'开头,并输出结果
    print(name.startswith('al'))
    #   6、判断 name 变量是否以'Nb'结尾,并输出结果
    print(name.endswith('Nb'))
    #   7、将 name 变量对应的值中的所有的'l'替换为'p',并输出结果
    print(name.replace('l','p'))
    #   8、将 name 变量对应的值中的第一个'l'替换成'p',并输出结果
    print(name.replace('l','p',1))
    #   9、将 name 变量对应的值根据所有的'l'分割,并输出结果
    print(name.split('l'))
    #   10、将 name 变量对应的值根据第一个'l'分割,并输出结果
    print(name.split('l',1))
    #   11、将 name 变量对应的值变大写,并输出结果
    print(name.upper())
    #   12、将 name 变量对应的值变小写,并输出结果
    print(name.lower())
    #   13、将 name 变量对应的值首字母'a'大写,并输出结果
    print(name.capitalize())
    #   14、判断 name 变量对应的值字母'l'出现次数,并输出结果
    print(name.count('l'))
    #   15、如果判断 name 变量对应的值前四位'l'出现几次,并输出结果
    print(name[0:4].count('l'))
    #   16、从 name 变量对应的值中找到'N‘对应的索引(如果找不到则报错),并输出结果
    print(name.index('N'))
    #   17、从 name 变量对应的值中找到'N‘对应的索引(如果找不到则返回-1),并输出结果
    print(name.find('N'))
    #   18、从 name 变量对应的值中找到'X le'对应的索引,并输出结果
    print(name.find('X le'))
    #   19、请输出 name 变量对应的值的第2个字符,并输出结果
    print(name[1:2])
    #   20、请输出 name 变量对应的值的前3个字符,并输出结果
    print(name[:3])
    #   21、请输出 name 变量对应的值的后2个字符,并输出结果
    print(name[-2:])
    #   22、请输出 name 变量对应的值中'e'所在索引位置,并输出结果
    i = 0
    str = name
    while i < name.count('e'):
        print(str.find('e'))
        str = str.replace('e','a',1)
        i += 1
    s = '132a4b5c'
    #   1、通过对li列表的切片形成新的字符串s1,s1 = '123'
    s1 = s[s.index('1')] + s[s.index('3')] + s[s.index('2')]
    print(s1)
    #   2、通过对li列表的切片形成新的字符串s2,s2 = 'a4b'
    s21 = s.split('2')
    s22 = s21[1].split('5')
    s2 = s22[0]
    print(s2)
    #   3、通过对li列表的切片形成新的字符串s3,s3 = '1245'
    s3 = s[0::2]
    print(s3)
    #   4、通过对li列表的切片形成新的字符串s4,s4 = '3ab'
    s4 = s[1:6:2]
    print(s4)
    #   5、通过对li列表的切片形成新的字符串s5,s5 = 'c'
    s5 = s[-1]
    print(s5)
    #   6、通过对li列表的切片形成新的字符串s6,s6 = 'ba3'
    s6 = s[-3:-8:-2]
    print(s6)
    #   使用while循环打印字符串s='asdfer'中的每个元素
    s = 'asdfer'
    i = 0
    while i < len(s):
        print(s[i])
        i += 1
    #   使用for循环打印字符串s='asdfer'中的每个元素
    for i in s:
        print(i)
    #   实现一个整数加法计算器,如:content = input('请输入内容:')
    #   如用户输入:5+9或者5+ 9或者5 +9,然后进行分割,再进行计算
    content = input('请输入内容:')
    str = content.split('+')
    i = 0
    sum = 0
    while i < len(str):
        str[i] = int(str[i].strip())
        sum += str[i]
        i += 1
    print(sum)
    #   计算用户输入的内容中有几个整数
    #   如:content = input('请输入内容:)
    #   如:fhdal234slfh98769fjdla
    content = input('请输入内容:')
    i = 0
    sum = 0
    while i < len(content):
        if content[i].isdigit():
            sum += 1
        i += 1
    print(sum)
  • 相关阅读:
    C# Base64 转字节 字节转普通字符串
    什么是x.509证书?
    k8s集群中部署和访问Dashboard服务
    yum查看软件包有哪些特定版本可用
    修改docker的cgroup driver为systemd
    创建客户端证书时如何指定用户及所在的用户组信息(CSR CN,O)
    部署webKubectl工具通过浏览器执行kubectl命令
    通过kubeadm工具部署k8s集群
    openssl命令查看证书的内容
    Spark运行架构
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/9318544.html
Copyright © 2020-2023  润新知