python

一、数字类型的内置方法

1.1 整形内置方法(int)

1.1.1 用途

​ 年龄、Id、等级等整数。

1.1.2 定义

​ 可以使用int()方法将纯数字的字符串类型转为十进制的整形。

age = 20
age = int(10)
print(type(age))
​
#<class 'int'>

1.1.3 常用操作

​ 算术运算+比较运算。

1.1.4 有序性

​ 不存在有序性

1.1.5 存值

​ 单值

1.1.6 可变性

​ 不可变

1.2 浮点型内置方法(float)

1.2.1 用途

​ 薪资,身高,体重等有小数的数据。

1.2.2 定义

​ 可以用float()方法将纯数字的字符串转为浮点型数字。

age = 3.1
age = float(3.1)
print(type(age))
​
#<class 'float'>

1.2.3 常用操作

​ 算术运算+比较运算。

1.2.4 有序性

​ 不存在有序性

1.2.5 存值

​ 单值

1.2.6 可变性

​ 不可变

二、字符串类型的内置方法

2.1 字符串类型的内置方法

2.1.1 用途

​ 描述性质的东西,如人的名字、单个爱好、地址、国家等

2.1.2 定义

​ 使用''、""、''''''、""""""包裹的的一串字符

  • u'unicode': unicode编码的字符串
  • b'101': 二进制编码的字符串
  • r'\n': 原生字符串,也就是说'\n'这是普通的两个字符,并没有换行的意思

2.1.3 有序or无序

​ 只要是有索引的,都是有序的,因此字符串是有序的

2.1.4 存单值or多值

​ 单值

2.1.5可变or不可变

​ 不可变

2.2 常用的操作

2.2.1 重点

1.索引取值
mm = 'hello nick'

print(f'索引为6:{mm[6]}')
print(f'索引为-3:{mm[-3]}')

#索引为6: n
#索引为-3:i
2.切片
mm = 'hello nick'

print(f'切片3到最后:{m[3:]}')
print(f'切片3-8:{mm[3:8]}')
print(f'切片3-8,步长为2:{mm[3:8:2]}')
print(f'切片3-最后,步长为2:{mm[3::2]}')

print('\n**了解知识点**')
print(f'切片所有: {mm[:]}')
print(f'反转所有: {mm[::-1]}')
print(f'切片-5--2: {mm[-5:-2:1]}')
print(f'切片-2--5: {mm[-2:-5:-1]}'
      
      
#切片3-最后: lo nick
#切片3-8: lo ni
#切片3-8,步长为2: l i
#切片3-最后,步长为2: l ik

#**了解知识点**
#切片所有: hello nick
#反转所有: kcin olleh
#切片-5--2:  ni
#切片-2--5: cin  
3.长度len
mm = 'hello nick'
print(len(mm))

#10
4.成员运算in or not in
mm = 'my name is nick, nick handsome'

print(f"'nick' in mm:{'nick' in mm}")
print(f"'jason' not in mm:{'jason' not in mm}")
print(f"not 'jason' in mm:{not 'jason' in mm}")

#'nick' in msg: True
#'jason' not in msg: True
#not 'jason' in msg: True
5.移除空白strip( )
name = '&&&n ick'

print(f"name.strip('&'):{name.strip('&')"})
print(f"name:{name}")

pwd = input('password: ')
if pwd.strip() == '123':
    print('密码输入成功')
    
print(f"'*-& nick+'.strip('*-&+'):{'*-& nick+'.strip('*-& +')}")   

#name.strip('&'): n ick
#name: &&&n ick
#password: 123   
#密码输入成功
#'*-& nick+'.strip('*-& +'): nick
6.切分split
info = 'nick:male:19'
info_list1 = info.split(':')
info_list2 = info.split(':',1)

print(f'info_list1:{info_list1}')
print(f'info_list2:{info_list2}')

#info_list1:['nick', 'male', '19']
#info_list2:['nick', 'male:19']
7.循环
mm = 'hello nick'
for i in mm:
    print(i)
    
#h
#e
#l
#l
#o
#n
#i
#c
#k

2.2.2 掌握

1.lstrip( )和rstrip( )
name = '&&nick&&'
print(f"{name.lstrip('&')}")
print(f"{name.rstrip('&')}")

#nick&&
#&&nick
2.lower( )和upper( )
name = 'Nick Chen'
print(f'{name.lower()}')
print(f'{name.upper()}')
      
#nick chen
#NICK CHEN
3.startswith( )和endswith( )
name = 'Nick Chen'
print(f'{name.startswith("Nick")}')
print(f'{name.endswith("chen")}')

#True
#False
4.rsplit( )
info = 'nick:male:19'
print(f"{info.rsplit(':'),1}")
      
#['nick:male','19']    
5.join( )
lis = [1,2,'19']
print(f"{':'.join(lis)}")

#报错 数字和字符串不可拼接

lis = ['nick','male','19']
print(f"{':'.join(lis)}")

#nick:male:19
6.replace( )
name = 'nick shuai'
print(f"{name.replace('shuai','handsome')}")

#nick handsome
7.isdigit( )
salary = '111'
print(salary.isdigit())

salary = '111.1'
print(salary.isdigit())

#True
#False
age = input('age: ')
if age.isdigit():
    age = int(age)
    
    if age < 18:
        print('小姐姐:)')
    else:
        print('阿姨好:)')
else:
    print(f'你的年龄是这个{age}?')
    
#结果一:
age: 18 
阿姨好:)
#结果二:
age: 啊?
你的年龄是这个啊??   

2.2.3 了解

1.find( )、rfind( )、index( )、rindex( )、count( )
mm = 'my name is tank, tank shi sb, hha'
print(f"{mm.find('tank')}")
print(f"{mm.find('tank',0,3)}") #从0开始索引,3结束索引,找不到返回-1
print(f"{mm.rfind('tank')}")
print(f"{mm.index('tank')}")
print(f"{mm.rindex('tank')}")
print(f"{mm.count('tank')}")

#11
#-1
#17
#11
#17
#2

注意:find找不到返回-1,index找不到直接报错

2.center( )、ljust( )、rjust( )、zfill( )
print(f"{'info nick'.center(50,'*')}")  #放置*
print(f"{'info nick'.ljust(50,'*')}")   #调整*居左
print(f"{'info nick'.rjust(50,'*')}")   #调整*居右
print(f"{'info nick'.zfill(50)}")  #填充0居右

********************info nick*********************
info nick*****************************************
*****************************************info nick
00000000000000000000000000000000000000000info nick
3.expandtabs( )
print(f"a\\tb\\tc: %s" %('a\tb\tc\t'))
print(f"'a\\tb\\tc'.expandtabs(32): %s" %('a\tb\tc\t'.eapandtabs(32))
      
#a\tb\tc: a  b   c   
#'a\tb\tc'.expandtabs(32):a                   b                    c                    

注意:’  '加在‘ \t ’、' \n '等之前则命令失效,成为普通字符串

4.captalize( )、swapcase( )、title( )
name = 'nick handsome sWAPCASE'
print(f"name.capitalize(): {name.capitalize()}") #首字母大写,用在段落开始
print(f"name.swapcase(): {name.swapcase()}")  # 大小写互转
print(f"name.title(): {name.title()}")  #所有单词首字母大写

Nick handsome sWAPCASE
NICK HANDSOME Swapcase
Nick Handsome Swapcase
5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit( )即可)
  • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
  • isdigit(): 如果字符串只包含数字则返回True,否则返回False。(重要)
  • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
num = "1"  #unicode
num.isdigit()   # True

num = "1" # 全角
num.isdigit()   # True

num = b"1" # byte
num.isdigit()   # True

num = "IV" # 罗马数字
num.isdigit()   # True

num = "四" # 汉字
num.isdigit()   # False

===================
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

================
import unicodedata

unicodedata.digit("2")   # 2

unicodedata.digit("2")   # 2

unicodedata.digit(b"3")   # TypeError: must be str, not bytes

unicodedata.digit("Ⅷ")   # ValueError: not a digit

unicodedata.digit("四")   # ValueError: not a digit

#"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"
6.is其他
  • salpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
  • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
  • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
上一篇:集合类型内置方法


下一篇:53-文件的三种打开方式