zoukankan      html  css  js  c++  java
  • 数字类型&字符串内置方法

    内置方法

    今天我们主要来了解数字类型和字符串类型的内置方法

    内置方法这个东西说难不难,说简单也不简单。通俗的来讲内置方法最复杂的部分不就是一个个Python已经给你写好的函数而已,只要调用就可以了。没见过猪跑,猪肉总吃过吧。但是内置方法毕竟不少,想要一一牢记并且熟用可不是一件简单的事情。下面就来听我一一阐述吧

    数字类型内置方法

    整型

    作用

    用于描述身高,年龄,id等

    定义方式

    x = 10
    x = int('10')
    x = int(10.1)
    x = int('10.1')  # 报错
    

    内置方法

    没有内置方法,只有算术运算+-*/和比较运算><>=<=

    存在一个值还是多个值

    一个值

    有序or无序(有序有索引,无序无索引)

    压根就没有这一说

    可变or不可变

    不可变(变量值而言),值变id也变

    浮点型

    作用

    薪资

    定义方式

    x = 1.11

    x = float('1.11')

    内置方法

    算术运算和比较运算

    存在一个值还是多个值

    一个值

    有序or无序

    没有这一说法

    可变or不可变

    不可变(类似整型)

    字符串类型

    作用

    姓名和性别等

    定义方式

    name = 'hyc'

    name = b'hyc' #打印出来的bytes类型(然而并没有什么卵用)

    字符串内置方法(只有字符串类型才能用)

    s = 'hyc is a stu'

    1、索引取值

    print(s[1])

    表示从中取字符,第一个字符为0,依次推类

    2、切片

    print(s[0:4:1]) #1表示从左到右
    print(s[-4::-1])  # -1表示从右到左  # 不推荐掌握
    print(s[4:0:-1])  # -1表示从右到左
    结果:hyc 
     	  a si cyh
    	 i cy
    

    3、for循环

    for i in s:
        print(i)
    

    这在for循环中也讲过,可以遍历这个字符串中所有的字符

    4、strip

    print(s1.strip())
    

    去两端的空白以及俩端别的字符

    strip用法:首先判断字符串s的两端字符,为,再去strip里找有没有,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉

    因此,strip的用法并不止于此

    s2 = '***!!!!!hyc is a stu----***'
    print(s2.strip('-*!'))  # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
    print(s2.strip('hyc'))  # 并未找到该字符串俩边的字符存在于strip函数中,因此什么也不会去掉
    

    还是把话题回归到登录系统。有的用户比较“出类拔萃”,呀喜欢在输入用户名或者密码的前后手残打空格,这个时候只要在input函数后面加上strip函数,他们就嚣张不起来啦

    username_db = 'hyc'
    pwd_db = '123456'
    code = random.randint(1000,9999)   #
    code = f'{code}{chr(random.randint(97,117))}{chr(random.randint(97,117))}{chr(random.randint(97,117))}'
    while count < 3:
    print(code)
    username = input('username:').strip()
    pwd = input('pwd:').strip()
    code_inp  = input('code:').strip()
    if username_db == username and pwd_db == pwd and code == code_inp:
    print('登录成功,但是并没有什么卵用')
    break
    else:
    count += 1
    print('33[43m傻逼,账号密码都忘了.验证码都看不懂33[0m')
    

    其中strip还有衍生用法:

    print(s2.lstrip('*'))   # !!!!!nick handsome----***
    print(s2.rstrip('*'))	# ***!!!!!nick handsome----
    

    其中lstrip,rstrip 分别为去除左侧字符和去除右侧字符

    5、split() 切割

    切割,顾名思义,就是讲该字符串以某一字符为标准切成n段,并以列表的形式打印出来

    print(s.split())  # 默认以空格切割字符串
    print(s.split('s'))  # 以!切割
    print(s.split('s', 1)
    结果为:
    ['hyc', 'is', 'a', 'stu']
    ['hyc i', ' a ', 'tu']
    ['hyc i', ' a stu']
    
    

    split 也是同理,还有 rsplit,这里就不再演示了

    6、in或 not in

    就是判断该字符是否在这个字符串中,返回 true 或者 false

    print('h' in s)  # True
    print('$' not in s2)  # True
    

    7、长度

    可以打印出该字符串的长度

    print(len(s))
    

    结果为12

    8、lower&upper

    lower 的作用为将字符串里所有的大写字母转为小写,而upper则相反

    这俩个函数对字符串中的数字没有影响

    s3 = 'Hyc is so Handsome1'
    print(s3.lower())	# hyc is so handsome1
    print(s3.upper())	# HYC IS SO HANDSOME1
    

    9、startswith&endswith

    startswith用来判断字符串是否以该字符开始,endswith则判断是否以该字符结束

    print(s3.startswith('H'))	# true
    print(s3.endswith('q'))		# false
    

    10、join

    join用的比较多,经常和split连用

    s3 = ' '
    print(s3.join(['234', '234', '234']))  # 以s3为间隔符,拼接列表里的每一个元素
    结果为:234 234 234
    

    那么怎么和split连用呢?

    s = '唱/跳/RAP/篮球/鸡你太美'
    s1 = s.split('/')
    print('*'.join(s1))
    输出结果为唱*跳*RAP*篮球*鸡你太美
    

    11、replace

    可以将字符串中的某个或者多个字符替换成想替换的字符

    s2 = 'qiaobiluo is a loli'
    
    print(s2.replace('loli', 'dama'))
    

    结果为:qiaobiluo is a dama

    12、isdigit(纯数字)/isalpha(纯字母)

    这俩个函数可判断字符串是否为纯数字或者纯字母

    s = '1234'
    print(s.isdigit())     # true
    s2 = 'aaac1c'
    print(s2.isalpha())	   # false	
    

    还记得之前讲的猜年龄程序吗?我们就可以在函数中加入isdigit函数,来判断用户是否输入的是数字

    answer = 18
    count = 0
    while count < 3:
        data = input("请输入你猜的年龄:").strip()
        if data.isdigit():
            age = int(data)
            if age > answer:
                print("猜大了")
            elif age < answer:
                print("猜小了")
            else:
                print("恭喜你猜对了")
                break
            count += 1
            if count == 3 :
                again_play = input("你猜错三次啦,如果想再玩请输入Y/y,不想玩请输入N/n").strip()
                if again_play == 'Y' or again_play == 'y':
                    count = 0
                elif again_play == 'N' or again_play == 'n':
                    print("太遗憾啦")
                    break
                else:
                    print("我怀疑你就是在捣乱,不让你玩了,哼")
                    break
        else:
            print("请输入数字哦,亲")
    
    

    这样程序就更加完整了,并且不会出现bug

    13、find/rfind//index/rindex/count (从这开始的内置函数以了解为主)

    find的主要作用是从字符串中寻找字符,rfind也是同理

    index和rindex如果找不到,则会报错

    而count函数则可以寻找该字符在字符串中出现的次数

    s2 = '**23423***hy234234c $$ hand223423some******'
    print(s2.find('$'))  # 从左找,找到第一个停止,找不到返回-1
    print(s2.rfind('$'))  # 从右找,找到就停止,找不到返回-1
    
    print(s2.index('$'))  # 找不到报错
    print(s2.rindex('$'))  # 找不到报错
    
    print(s2.count('h'))  # 1
    

    14、center/ljust/rjust/zfill

    这几个函数的作用都市填充,前三者可以在字符串的俩侧,前,后分别填充任意数量字符,而最后一个函数可以填充0居右

    s2 = 'hyc handsome'
    print(s2.center(50, '*'))  # 居中
    print(s2.ljust(50, '*'))  # 居左
    print(s2.rjust(50, '*'))  # 居右
    print(s2.zfill(30))  # 填充0居右
    

    结果为:hyc handsome
    hyc handsome**************************************
    **************************************hyc handsome
    000000000000000000hyc handsome

    15、expandtabs

    用于在字符串中将tab 符号(' ')转为空格,tab 符号(' ')默认的空格数是 8

    s2 = 'a	a'
    print(s2)
    print(s2.expandtabs(8))  # 针对	而言
    

    结果为:a a
    a a

    16、captalize/swapcase/title(只针对英文)

    这三者一般用于英文字母的大小写转换,和lower,upper简单的互换大小写不同,这三个函数可以做到更多的事,通常用于将英文字符串转化为文章开头,书名等

    s2 = 'harry Potter'
    
    print(s2.capitalize())  # 首字母(一句话的开头)大写,其他全小写,用在段落开始
    print(s2.swapcase())  # 大小写互换
    print(s2.title())  # 所有单词首字母大写
    

    结果为:Harry potter
    HARRY pOTTER
    Harry Potter

    存在一个值还是多个值

    一个值

    有序or无序

    有序

    可变or不可变(重点)

    定义:

    可变:值变id不变,不可哈希

    不可变:值变id也变,可哈希

    不可变

    s2 = 'abc'
    print(id(s2))
    s2 += 'abc'
    print(id(s2))
    

    可以发现,s2的内存地址发生了变化。

    总结

    相比较与数字类型,字符串的内置方法要多很多。特别是字符串的内置函数,还有很多有用的,没用的,或者不知道有没有用的都没有列出来,但是最常用的已经在上面了。如果能大概记得这些内置函数,那么在敲代码的时候就不会掉这么多头发了。

  • 相关阅读:
    欢迎参加MVP主讲的Windows 10开发线上课程
    SharePoint 2013 重复的管理账户错误:已添加项。字典中的关键字 所添加的关键字
    SharePoint 2013 开发——SharePoint Designer 2013工作流
    SharePoint 2013 开发——构建工作流开发环境
    SharePoint 2013 开发——工作流架构
    SharePoint 2013 开发——APP安全模型
    SharePoint 2013 开发——SharePoint APP介绍
    SharePoint 2013 开发——概述
    win32
    hdu2100 26进制加法
  • 原文地址:https://www.cnblogs.com/hyc123/p/11289630.html
Copyright © 2011-2022 走看看