数据类型
| 数据类型 | 介绍 | 举例 |
| int | 数字:主要用于运算 | 1,2,3 |
| bool | 判断真假 | True,False |
| str | 简单少量的储存数据,并进行相应的操作 | ‘lucy’,”alice” |
| tuple | 元组:只读 | (1,2,’alex’) |
| list | 储存大量的有序数据 | [1,’abc’,True,[1,2,3]] |
| dict | 字典:大量数据,且是关联性比较强的数据 | 字典{‘name’:’lucy’,’age’:16} |
| set | 集合 | {1,2,34,’asdf’} |
基础数据类型的操作
int型
num = 10
print(num.bit_length()) # 当十进制用二进制表示时,最少使用的位数 运行结果为4
bool型
#int --> bool 值是0相当于False,非零相当于True
a = -2
print(bool(a)) #结果True
#str --> bool 值是空相当于False,非空相当于True
b = ''
c = '0'
print(bool(b),bool(c)) #结果False True
str型
1、字符串的索引与切片
s = 'ABCDEFG'
#索引
s1 = s[0] #A (0,1,2...表示从头取)
s2 = s[2] #C
s3 = s[-1] #G (-1,-2,-3...表示从尾取)
#切片:顾头不顾尾 s[首:尾:步长]
s4 = s[0:4] #ABCD 从s[0]取到s[3]
s5 = s[0,-1] #ABCDEF 从s[0]取到s[-2]
s6 = s[0:] #ABCDEFG 等价于s[:] 另s[0:0]输出为空
s7 = s[0:4:2] #AC 步长即间隔几位取一个,不填默认为1
s8 = s[4:0:-1] #EDCB
s9 = s[3::-1] #DCBA
s10 = s[-1::-1] #GFEDCBA 等价于s[::-1]
2、字符串的操作(记s为一个字符串)
| 操作 | 用途 |
| s1 = s.upper() | 将字符串s全部转为大写(类似的lower全转为小写) |
| s2 = s.capitalize() | 首字母大写 |
| s3 = s.swapcase() | 大小写翻转 |
| s4 = s.title() | 每个隔开(特殊字符或者数字)的单词首字母大写 |
| s5 = s.center(20,’~’) | 居中,空白填充补位至第一个参数值(默认),或者用第二个参数做填充符 |
| s6 = s.expandtabs() | 如s=’AB\tCE’,则使得AB和CDE之间用空格填充,位数为八减\t之前的位数模8的余数 |
| l = len(s) | 计算字符串的长度,一个中文也只计为1 |
| s7 =s.startswith(‘al’) s71 = s.startswith(‘e’,2,5) | 判断是否以al开头,返回值为True/False,类似的有endswith 补充:判断s字符串的第三位到第五位个字符是否以e开头(参考上述字符串的索引部分,同样顾头不顾尾,s[2]至s[4]是否以e开头) |
| s8 = s.find(‘A’) | 通过元素找索引,找不到返回-1。类似的有index,区别在于找不到报错 |
| s9 = s.strip(‘%*’) | 留空默认删除前后空格,有参数则删除参数中的字符(不是字符串!不计顺序删除首尾处的相关字符,如举例即是删除所有%和*)。rstrip和lstrip表示从右和左分别删除相关字符。 |
| s10 = s.count(‘al’) | 计算s中包含al的数目 |
#split str --> list
s = ';alex;wusir;taibai'
l = s.split('a')
print(l) #[';', 'lex;wusir;t', 'ib', 'i'] 将a作为分隔符,把其他字符拆开放入list
#format的三种用法 格式化输出
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('Lucy',36,'girl','Lucy') #1
name = input('请输入名字:') #2
s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
name = input('请输入名字:') #3
s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
另:Python 替换字符串的方法 | 菜鸟教程 (runoob.com)
