数值类型和进制转换、字符串变换相关运用

一、数值类型及进制转换

  1、int只能将字符串中包含纯数字转成整型

  2、进制转换

  #十进制转成其他进制

# print(bin(12))  # 0b1100
# print(oct(12))  # 0o14    12 => 1*(8**1) + 2(8**0)
# print(hex(12))  # 0xc
#输出结果
'''
0b1100
0o14
0xc
'''

  # 进制转换(了解**)
  # 其他进制转成十进制
    print(int('10',2))  # 2进制转
    print(int('10',8))  #8进制转
    print(int('10',16))  #16进制转

  3、可变类型与不可变类型

    可变类型:值改变的情况下,id不变,说明你改的是原值
    # 不可变类型:值改变的情况下,id一定变
    # python变量可以分为两种类型
    # 不可变类型(数字、字符串、元组、不可变集合)
    # 可变类型(列表、字典、可变集合)

二、字符串转换运用

  1、按索引取值(正向取+反向取) :只能取(不可修改)

  2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串

    # 左边的固定就是头,右边固定就是位 没有说按数字来分头尾

    例:

s = 'hello'
print(s[0:5])
print(s[0:10:2])  # 步长表示隔几个取一个,步长不写默认是1
print(s[-1]) 
print(s[5:0:-1])  # 切片取值默认是从左往右的 ,了解负数取值
print(s[-1:-10:-1])
#输出结果
'''
hello
hlo
o
olle
olleh
'''

  3、len(长度):

    统计的是字符串中字符的个数
    s1 = 'hello'
    print(len(s1)) # 5

  4、in 和 not in(成员运算):

    判断一个子字符串是否存在于一个大的字符串中

  5、strip 

    去掉字符串左右两边的字符,不管中间的
    使用内置的方法统一采用 句点符(.)
    strip()默认去除字符串首尾的空格,

  6、split(切分)
    针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
    # 强调:split切分出来的数据类型是一个列表
    # 如果不指定那么split和rsplit效果是一样

data = 'jason|123| handsome'
print(data.split('|'))
username,password,info = data.split('|')
print(username,password,info)
    
#输出结果
#['jason', '123', ' handsome']
#jason 123 handsome

        

  7. .lower()      字符串全部小写
    .upper()     字符串全部大写

  8、startswith ,endswith :判断以什么结尾和开始

  9、format的三种玩法
    第一种、按位置站位(和%s原理一直)
    例:str1 = 'my name is {} my age is {}'.format(18,'jason',)
    第二种、按索引占位
    例:str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
    第三种、按名道姓占位(关键字传参数)
    例:str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)  

  10、join : 将容器类型中的多个元素通过指定字符拼接成一个字符串
    例:

res = ['jason', '123', 'handsome']
str = '$'.join(res)   
print(str)
#输出结果
# jason$123$handsome

  11、replace 替换字符串中的字符(可选数量)
    例:

str = 'egon is dsb and egon is sb he has a BENZ'
res = str.replace('egon','kevin',1) 
#输出结果
# kevin is dsb and egon is sb he has a BENZ

  12、isdigit    # 判断字符串中包含的是否为纯数字

  13、find、rfind、index、rindex、count

s = 'kevin is dsb o and kevin is sb'
print(s.find('dsb'))   # 返回的是d字符所在的索引值
print(s.find('xxx'))   # 找不到的时候不报错返回的是-1 
print(s.find('i',0,3))   # 还可以通过索引来限制查找范围
print(s.index('o'))   # 返回所传字符所在的索引值
print(s.index('i',0,5))   # 返回所传字符所在的索引值 ,  如果找不到会报错
print(s.count('n'))   # 统计字符出现的次数
#输出结果
'''
9
-1
-1
13
3
3
'''

  14、center(中间),ljust,rjust,zfill(用0补充) 用法

s9 = 'tom'
print(s9.center(12,'*'))
print(s9.ljust(6,'$'))
print(s9.rjust(6,'$'))
print(s9.rjust(6,' '))
print(s9.zfill(6))
#输出结果
'''
****tom*****
tom$$$
$$$tom
   tom
000tom
'''

  16、expandtabs 多加几个 Tab 键

s10 = 'a\tbc'
print(s10.expandtabs(10))
#输出结果
#a         bc

  15、captalize(首字母大写)、swapcase(大小写互换)、title(每个单词首字母大写)

s12 = 'hElLo WoRLD sH10'
print(s12.capitalize())  # Hello world 首字母大写
print(s12.swapcase())  # 大小写互换
print(s12.title())  # 每个单词的首字母大小
#输出结果
'''
Hello world sh10
HeLlO wOrld Sh10
Hello World Sh10
'''

  16、is数字系列
      ''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别。
      ''.isdecimal(): unicode 只识别普通的阿拉伯数字。
      ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了

猜你喜欢

转载自www.cnblogs.com/xiaowangba9494/p/11128279.html