1.int类型
1)xxx.bit_length()
返回xxx的二进制长度
a = 10
print(a.bit_length()) # 4
2.bool类型
1)类型转换
- bool ---> int
bs = False # bool值 print(type(bs)) # <class 'bool'> x = int(bs) # 0 print(x) # 0 print(type(x)) # <class 'int'>
- int ---> bool
print(bool(-1)) # True print(bool(0)) # False
结论:
a)把x转换成y类型:y(x)
b) 空的东西都是False, 非空的东西是True
c) False:0, '', [], {}, set(), tuple(), None(真空)
3.字符串
把字符连成串,在python中用', '', ''', """引起来的内容被称为字符串
字符串是不可变对象,所有操作都是产生新字符串返回
1)切片和索引
- 索引
索引就是下标,下标从0开始
s1 = 'python' print(s1[0]) # 获取第一个 print(s1[6]) #越界,报错 print(s1[-1]) # 获取倒数第一个 print(s1[-2]) # 获取倒数第二个
- 切片
使用下标来截取部分字符串的内容
语法:str[start: end]
规则:顾头不顾尾,从start 开始截取,截取到end位置,但不包括end
s2 = "python" print(s2[0:3]) # pyt print(s2[4:6]) # on print(s2[3:]) # hon print(s2[-1:-3]) # 从-1获取到-5这样是获取不到任何结果的,默认从左往右数 print(s2[-3:-1]) # ho print(s2[:]) # python
步长:
步长如果是正数,则从左往右取,如果下负数,则从右往左取,默认为1
s3 = ""python" print(s3[1:5:2]) # yh print(s3[-1:-5:-1]) #noht print(s3[-2::-2]) # otp
2)大小写
- capitalize
s1 = "hello world" print(s1.capitalize()) # Hello world
- lower
s1 = "HeLLo WoRld" print(s1.lower()) # hello world
- upper
s1 = "hello world" print(s1.upper()) # HELLO WORLD
- swapcase
功能:大小写互相转换
s1 = "Hello World" print(s1.swapcase()) # hELLO wORLD
- casefold
功能:转换成小写,和lower的区别:lower()对某些字符支持不够好。casefold()对所有的字母都有效。比如东欧的一些字母。
s2 = "БBß" # 俄美德字符 print(s2.casefold()) # 6bss print(s2.lower()) # 6bß
- title
功能:每个被特殊字符隔开的字母首字母大写
s1 = "hello world" s2 = "pyt你好hon" print(s1.title()) # Hello World print(s2.title()) # Pyt你好Hon
3) 切来切去
- center
功能:居中
s1 = "python" print(s1.center(10)) # python print(s1.center(10, "*")) # **python**
- expandtabs
功能:更改tab的长度,默认长度改为8
s1 = “pyth\ton” print(s1.expandtabs()) # pyth on
- strip
功能:默认去掉左右两端的空白(空格,\n, \t)
s1 = " \n python \t " print(s1.strip()) # python
- lstrip
功能:默认去掉左端的空白(空格,\n, \t)
- rstrip
功能:默认去掉右端的空白(空格,\n, \t)
- replace
功能:字符串替换
s1 = "hello world" ret = s1.replace("o", "p") # hellp wprld ret = s1.replace("o", "p",1) # hellp world
- split
功能:字符串切割
s1 = "python, java, c, c++, c#" print(s1.split(",") # ["python", "java", "c", "c++", "c#"]
4)查找
- startswith
功能:判断是否以某个/些字符开头
s1 = "Beautiful is better than ugly" print(s1.startswith("Beautiful")) # True
- endswith
功能:判数是否以某个/些字符结尾
s1 = "Beautiful is better than ugly" print(s1.startswith("ugly")) # True
- count
功能:查找某个/些字符出现的次数
s1 = "python" print(s1.count("h")) # 1
- find
功能:查找某个/些字符出现的位置,如果没有返回-1
如果查找的某个字符在字符串中出现多次,则查找所得的结果是第一个字符出现的位置。
s1 = "python, java, c, c++, php" print(s1.find("java")) # 8
切片找:
s1 = "python, java, c, c++, php" print(s1.find("java", 12, 25)) # -1
- rfind
从字符串末尾开始查找
- index
功能:求索引位置,如果找不到索引,程序会报错
s1 = "python, java, c, c++, php" print(s1.index("java")) # 8
-
rindex
从字符串末尾开始查找
5)格式化输出
- format
print("我叫%s, 今年%d岁了, 我喜欢%s"%("赛利亚", 18, "玩")) print("我叫{}, 今年{}岁了, 我喜欢{}"%("赛利亚", 18, "玩")) print("我叫{0}, 今年{2}岁了, 我喜欢{1}"%("赛利亚", "玩", 18)) print("我叫{name}, 今年{age}岁了, 我喜欢{hobby}"%(name="赛利亚", hobby="玩", age=18))
6)条件判断
- isalnum
功能:是否由字母和数字(int)组成,可以理解为包含isalpha和isnumeric的功能
s1 = "123.16" s2= "abc" s3 = "_abc!@"
s4 = "adfgsddfrd123456789壹贰叁肆伍陆柒一二三"
print(s1.isalnum()) # False print(s2.isalnum()) # True print(s3.isalnum()) # False
print(s4.isalnum()) # True
- isalpha
功能:是否由字母组成
s1 = "123.16" s2= "abc" s3 = "_abc!@"
s4 = "中国"
print(s1.isalpha()) # False print(s2.isalpha()) # True print(s3.isalpha()) # False
print(s4.isalpha()) # True
- isdigit
功能:是否由阿拉伯数字(%d)组成
s1 = "123" s2 = "123.16" print(s1.isdigit()) # True print(s2.isdigit()) # False
- isdecimal
- isnumeric
a = "123456789壹贰叁肆伍陆柒一二三四五" print(a.isnumeric()) # True
7) 计算字符串长度
- len
len()是python的内置函数。
s1 = "python" print(len(s1)) # 6
8) 迭代
可以使用for循环来遍历字符串中的每一个字符
可迭代对象:可以一个一个往外取值的对象
s1 = "hello world" for c in s1: print(c)