表示整数,可以进行加减乘除运算,大小比较,在某一个特定的区间内可以表现的很清楚
表示小数,数据范围是无限的
在计算10与3的商时,给出的结果如下
小数点的最后一位是5,原因如下:(其他计算机语言也有该类问题)
表示小数,小数的数据范围是无限的
而计算机是一个二进制产品(只有0和1),表示小数很困难。
因此计算机表示一个小数是有误差的,“5”就是误差,表示接近这个结果。
用来进行条件判断,取值范围只有True
和False
,也可以进行基础数据类型之间的转换
在python中,所有非零的数字转换成bool都是True,只有零是False
既然非零数字的布尔值都是True
那么在写while
死循环时可以直接用数字代替
所有非空字符串都是True
,空字符串都是False
综上所述:python基本数据类型中,表示空的东西都是False
,不空的东西都是True
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
hobby = input("请输入你的爱好:")
s1 = "我叫%s,我今年%d岁,我喜欢%s" % (name, age, hobby)
s2 = "我叫{},我今年{}岁,我喜欢{}".format(name, age, hobby)
s3 = f"我叫{name},我今年{age}岁,我喜欢{hobby}"
print(s3)
其中%s
是万能的,不仅可以作为字符串占位,也可以是浮点数占位
使用%d
是占位整数
使用%f
是占位小数
执行上述python代码后,交互式结果如下:
定义一个字符串str="Hello World"
如果要获得字符串中元素W
,代码如下
str = "Hello World"
print(str[6])
索引是从字符串中提取某个数据内容
切片是从字符串中提取某部分(区间)数据内容
获得从e开始,到W结尾的数据段内容
str = "Hello World"
print(str[1:7])
由此可知str[m:n]
的取值范围是从m到n,取得到m,取不到n
如果从头开始取,前面的可以省略str[:n]
同理,如果想取到尾部,后面的也可以省略str[m:]
如果使用负数的索引,依旧是从左往右筛取,最后一个数字位取不到
str = "Hello World"
print(str[-3:-1])
最后的结果是rl
,索引-1
位置的d
取不到
将字符串元素反方向输出
str = "Hello World"
print(str[::-1])
输出结果如下
dlroW olleH
中括号的第二个冒号后面的-1表示,步长为1的从右往左的切片方式
在2-2中所有从左往右的切片,第二个冒号后面我们默认为1的步长,故省略
公式str[start:end:step]
表示从start切割到end,但不包括end,每step个元素中取一个元素
其中的start和end的数字可以随意设置,可以有正数有负数,只要能表示某区间段的内容即可
其中step
数值为正,表示从左往右的顺序截取;数值为负,表示从右往左截取。它必须与start和end设置的方向保持一致。换句话说,start和end确定后,step的正负也确定了,截取必须是从start开始,到end结束。
(此处如果不理解,建议自己随意设置字符串,随便取数字试一下,就懂了)
字符串的操作一般不会对原字符串产生影响,会返回一个新的字符串
s = "python"
s1 = s.capitalize()
print(s1)
它会将一段连贯的英文字母当作一个单词
s = "nice to meet you"
s1 = s.title()
print(s1)
s = "HELLO WORLD"
s1 = s.lower()
print(s1)
s = "hello world"
s1 = s.upper()
print(s1)
此处常用作验证码忽略大小写的匹配
verify_code = "s8Hk"
user_input = input(f"请输入验证码({verify_code}):")
if verify_code.upper() == user_input.upper():
print("验证码正确")
else:
print("验证码不正确")
交互式执行结果如下:
str = " I have a dream "
str1 = str.strip()
print(str1)
相关案例:输入用户名和密码,即使前后有空格,也要登陆成功。
username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
if username == "root":
if password == "123456":
print("输入正确!")
else:
print("输入错误!")
else:
print("输入错误!")
在进行交互式输入用户名和密码时,我的前后都有空格,但不影响最终结果的正确
在python官方文档中,strip()
作用是去掉字符串左右两端的空白符(空格,\t,\n)
举例说明:去掉字符串中所有的空格
换句话说,将字符串所有的空格替换成“空”
str = " He is a cool boy "
str1 = str.replace(" ", "")
print(str1)
最后代码执行结果是:Heisacoolboy
举例说明:将下列字符串以下划线为单位进行切割str = "Linux_Docker_Centos_Python_Java"
代码如下:
str = "Linux_Docker_Centos_Python_Java"
str1 = str.split("_")
print(str1)
print(type(str1))
切割后的内容会储存在列表中,用中括号表示,执行结果如下:
用什么切割,就会损失掉什么。用下划线切割,所得结果就没有下划线。
find()
举例说明:查找字符串中”灰太狼“是否存在
返回结果是6,表示存在该元素,并且位置在索引的”6”处。
如果返回结果是-1,表示该字符串不存在要查找的元素
index()
和find()
用法相同,区别是当它找不到元素时,不会返回-1,而是直接报错
in
如果元素存在,返回True;否则返回False。
也可以判断是否不存在
print("灰太狼大王" not in str)
举例说明一:交互式输入一个名字,判断是否姓王
举例说明二:饭卡充值,判断是否是整数数字
money = input("请输入充值金额:")
if money.isdigit():
money = int(money)
print("充值成功!")
else:
print("充值失败,请输入数字...")
str = "fantastic"
print(len(str))