作者:jing阿囡宝_478 | 来源:互联网 | 2023-09-25 11:45
篇首语:本文由编程笔记#小编为大家整理,主要介绍了python3:基本数据类型(int,bool,str)相关的知识,希望对你有一定的参考价值。
一. python基本数据类型二.整数(int)所有整数都是int类型。
bit_length()
返回一个数的二进制长度。(了解)
a = 2
print(a.bit_length())
结果:
2
a = 5
print(a.bit_length())
结果:
3
说明:十进制转二进制
将正的十进制数除以二,得到的商再除以二,依次类推直到商为零或1时为止,然后在旁边标各步的余数,最后倒着写出来,高位补零就OK了。
三.布尔值(bool)取值只有True、False。bool值没有操作
1.所有的空都是False,所有的非空都是True。
a = 0 # 整数0,False
print(bool(a))
s = "" # 空字符串,False
print(bool(s))
lst = [] # 空列表,False
print(bool(lst))
dic = {} # 空字典,False
print(bool(dic))
a = None # None表示空,真空,False
print(bool(a))
2.类型转换
把xx类型转换成yy类型,yy(xx)
str => int # 字符串转整数
int(s)
int => str # 整数转字符串
str(i)
list => tuple # 列表转字典
tuple(lst)
tuple => list # 字典转列表
list(tu)
四.字符串(str)在python中,用‘, ", ‘‘‘, """ 引起来的内容被称为字符串。
1.切边和索引
索引
下标,切记,下标从0开始
s = "伊丽莎白儿时"
print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])
print(s[5])
# print(s[6]) # 没有6,报错了,索引不能超过边界
print(s[-1]) # 倒数第一个
print(s[-2])
切片
格式:[起始位置:结束位置] 或 [起始位置:结束位置:步长]
特点:1.顾头不顾尾。2.默认从左往右切。
s = "伊丽莎白儿时"
print(s[1:3]) # 从1切到3,但是取不到3
print(s[1:100]) # 从1切到100,如果右边已经过了最大值,相当于获取到最后
print(s[1:]) # 从1开始切,切到结尾
print(s[:2]) # 从头开始切,切到2
print(s[:]) # 从头到尾
print(s[-1:-3]) # 安装默认规则,从-1往右切,是怎样都不会切到-3的,方法在下面。
print(s[-3:-1]) # 只能从左到右切
# 给出第三个参数来控制方向,第三个参数叫步长
s = "伊丽莎白儿时"
print(s[-1:-3:-1]) # - 表示反方向,从右往左切。
print(s[1:5:3]) # 从左到右,从1到5,但不包含5,每3个取1个。
print(s[-1:-5:-2]) # 从右到左,从-1到-5,但不包含-5,每2个取1个。
2.字符串的相关操作
字符串是不可变的对象,所有任何操作对源字符串是不会有任何影响的。
2.1.大小写转换
capitalize()
把首字母变成大写
lower()
把字母变成小写
upper()
把字母变成大写。(重要,标红的都是必记的)
swapcase()
大小写互换
casefold()
把字母变成小写。
和lower的区别:
--lower()对某些字符支持不够好。
--casefold()对所有字母都有效,比如东欧一些字母。
title()
把每个单词的开头大写。
s = "alex is a teacher And wusir is a teacher too"
s1 = s.capitalize() # 只把alex首字母大写,并且测试时发现,把And变成小写的了。
print(s1)
s2 = s.lower() # 全部变小写
print(s2)
s3 = s.upper() # 全部变大写
print(s3)
s4 = s.swapcase() # 大小写转换,大写变小写,小写变大写
print(s4)
s2 = "БB?" # 俄美德
print(s2)
print(s2.lower()) # 德文的B,不会转换
print(s2.casefold()) # 全都可以转换成小写
s = "alex_is a teacher And wu吴sir is a teacher too"
s5 = s.title() # 只要不是全是字母连接的开头都会大写,alex_is中a和i都大写,wu吴sir中w和s都大写
print(s5)
2.2.切来切去
center()
居中
expandtabs()
更改tab的长度
strip()
去掉空白(空格和换行符)
replace()
字符串替换
split()
字符串切割
切完的结果是一个列表,列表中装的是字符串,用什么切就会损失掉什么
s = "sp"
s1 = s.center(10) # 拉长成10,把原字符串放中间,其余位置补空白
print(s1)
s1 = s.center(10, "*") # 拉长成10,把原字符串放中间,其余位置补*
print(s1)
s = " alex is a teacher "
s1 = s.strip() # 去掉左右两侧的空格,中间的空格不会影响
print(s1)
s2 = s.lstrip() # 去掉左边的空格,left
print(s2)
s3 = s.rstrip() # 去掉右边的空格,right
print(s3)
s = "sp alex sp"
s1 = s.strip("sp") # 去掉左右两边的sp,空格不会去
print(s1)
s2 = s.lstrip("sp") # 去掉左边的sp,空格不会去
print(s2)
s3 = s.rstrip("sp") # 去掉右边的sp
print(s3)
s = "alex_wusir_taibai_ritian"
s1 = s.replace("_", "A") # 将_,全部替换为大写A
print(s1)
s2 = s.replace("_", "") # 将_,全部替换为空(不是空格)
print(s2)
s3 = s.replace("_", "A", 2) # 将_,替换为A,从左到右替换2个
print(s3)
s = "alex_wusir_taibai_ritian"
lst = s.split("taibai") # 用taibai切,那生成的列表中,就会去掉taibai
print(lst)
s = """我是谁
你是谁"""
lst = s.split("
") # 去掉换行符(
)
print(lst)
2.3.格式化输出
format()
# 输出的结果是一样的
s = "我叫%s, 我今年%s岁了" % ("周杰伦", "40")
print(s)
s = "我叫{}, 我今年{}岁了".format("周杰伦", "40") # 按位置格式化
print(s)
s = "我叫{0}, 我今年{1}岁了".format("周杰伦", "40") # 指定位置
print(s)
s = "我叫{1}, 我今年{0}岁了".format("40", "周杰伦")
print(s)
s = "我叫{name}, 我今年{age}岁了".format(name="周杰伦", age=40) # 指定关键字
print(s)
2.4.查找
startswith()
以...开头
endswith()
以...结尾
count()
统计xx在字符串中出现的次数
find()
查找xx在字符串中出现的位置, 只找第一次出现的位置, 没有就返回-1
index()
查找xx在字符串中出现的位置, 只找第一次出现的位置, 当字符串不存在的时候, 报错
s = "Tom is a cat"
print(s.startswith("Tom")) # 是否以Tom开头, 注意区分大小写
print(s.endswith("cat")) # 是否以cat结尾
print(s.count("a")) # 统计a出现的次数
print(s.find("a")) # 返回 7
print(s.find("A")) # 返回 -1
print(s.find("a", 8, 12)) # 切片找, 返回10
print(s.index("a")) # 返回 7
# print(s.index("A")) # 会报错
2.5.条件判断
isdigit()
是否由数字组成
isalpha()
是否由字母组成
isalnum()
是否由数字和字母组成
isnumeric()
是否有数字组成, 可识别中文
isupper()
判断字符串中包含的字母是否全为大写
islower()
判断字符串中包含的字母是否全为小写
# 只列举正确(True)的判断
s1 = "123"
print(s1.isdigit()) # 数字
s2 = "abc"
print(s2.isalpha()) # 字母
s3 = "123abc"
print(s1.isalnum()) # 数字
print(s2.isalnum()) # 字母
print(s3.isalnum()) # 数字和字母
s = "壹仟贰佰五十六萬拾"
print(s.isnumeric())
s1 = "AND"
s2 = "[email protected]"
print(s1.isupper())
print(s2.isupper())
s3 = "and"
s4 = "[email protected]"
print(s3.islower())
print(s4.islower())
2.6.计算字符串的长度
len()
python内置函数,通用的
3.for循环
for 变量 in 可迭代对象:
循环体
else:
当循环结束的时候会执行
解释:
可迭代对象: 可以一个一个往外取值的对象.
s = "我是谁"
# 使用while循环
n = 0
while n < len(s):
print(s[n])
n = n + 1
# 迭代
# 使用for循环
for c in s:
print(c)
in的小结:
in的两种用法