python数据类型有 整形 浮点型 复数
float 浮点型,不够精确,采用二进制存储。decimal足够精确
from decimal import Decimal
mydec = Decimal("3.22")#字符
mydec2 = Decimal(3.22)#浮点
print(mydec, type(mydec))
print(mydec2, type(mydec2))
2."""使用
str3= """
keyi
huanhang
"""
print(str3, type(str3))
运行结果为
keyi
huanhang
<class 'str'>
转义字符
print("\ ") # \" 表示一个双引号 “
print("\"")
print("\\")
print("\a")
print("a\nb")
print("a\tb")
print("a\\t")
print(r"a\tb")#原始标记为,不转义
结果:
\
"
\
a
b
ab
a\t
a\tb
字符串切片
#str[start:end:step] step为负,从后往前,-2,代表从后往前取,每两步取一个。step未定义时,取值为1
# str1 = "abc123456"#从前往后排序0~8.从后往前排序-1~-9
str1 = "abc123456"#从前往后排序0~8.从后往前排序-1~-9
print(str1[:4])#取的时候为为前开后闭
print(str1[3:7])
print(str1[6::-1])
print(str1[-2:2:-2])
print(str1[2:-2:-2])#此时,开始到结束的方向和step的方向相反,取不到,因此取值为空
print(str1[4:-1])
结果为:
abc1
1234
4321cba
(空)原因:
531
2345
字符串级联
str1 = "xyz" "abc"
print(str1)
str2 = "111" + "222"#拼接
print(str2)
str3 = "#@"*3#字符串重复三次
print(str3)
结果为:
xyzabc
111222
#@#@#@
字符串格式化 format属性格式化
%s --str 标志位 %d -- 十进制整型 %x --十六进制 %o --八进制
%f --浮点型 %.2f 保留两位小数 %% --表示百分号本身
name = input("input name")
school = input("input school")
stu_info = "my name is %s,my school is %s"%(name, school)
format_str2 = "my name is {user},my school is {sch}".format(user=name, sch=school)
print(stu_info)
print(format_str2)
print('{0:x}'.format(30))#将30以十六进制输出
使用{}输出
name = "sctl"
age = 18
str1 = f"my name is {name}, my age is {age + 2}"
print(str1)
f标志位格式
print(dir("xxx123"))
#变量名.属性名 变量名.方法名() 以这种方式访问对象一系列属性方法
print(f"是不是全为大写:{'xxxABC'.isupper()}")#在输出结果中,使用f将变量代入到{}中,相当于printf("%d",a)
print(f"是不是全为大写:{'ABC'.istitle()}")#Python变量放入{}外,还可将函数放入{}
#判断一段范围内是不是以abc开始
print(f"判断开始字符:{'abc'.startswith('abc',3)}")
print(f"判断结束字符:{'abc123'.endswith('123')}")
字符串的遍历和判断成员关系
#字符串的遍历
for i in "abc":
print("*"*10)
print(i)
#判断成员关系
print("a" in "abc")
print("abd" not in "abc")
结果为:
**********
a
**********
b
**********
c
True
True
查找统计类
print(len("abcdefg"))
#统计字符出现的次数 ab子串出现的次数
print("abesdfjaladsjl".count("ab"))
#查看字符第一次出现的下标位置
print("abbcd".index("b"))
print("sadfkj".index("e"))#没有的会报错,后面代码无法执行
#查看字符串第一次出现的位置
print("abcde.".find("b"))
print("abcde.".find("r"))#没找到会输出为-1
练习1:从键盘接受用户输入的字符串,统计每一个字符串出现的次数
str1 = input("输入需要统计的字符串")
for i in str1:
a=str1.count(i)
if a > 1:
print("输入的次数为")
else:
print("出现的次数为")
print(a+1)
字符串转换
print(f"将字符串转化为大写:{'aklsfdjlkads'.upper()}")
print(f"将字符串转化为小写:{'ajlksfd'.lower()}")
print(f"将字符串转化为标题:{'the world'.title()}")
####字符串的切割
str1 = "alsdjalfs:*ialfuai#2842%#"
print(f"字符串的切割:{str1.split('#')}")
#####字符串的拼接
lst = ["aa", "bb", "cc"]
print(lst[0])
result = "*".join(lst)
print(result)
结果为:
将字符串转化为大写:AKLSFDJLKADS
将字符串转化为小写:ajlksfd
将字符串转化为标题:The World
字符串的切割:['alsdjalfs:*ialfuai', '2842%', '']
aa
aa*bb*cc
11.默认去除输入的首尾空白的字符
######默认去除输入的首尾空白字符
str2 = input("an string")
if str2.strip() == "sctl":
print("ok")
12.替换 --replace默认全部替换,也可以指定替换次数
#####替换 --replace默认全部替换,也可以指定替换次数
str1 = "xxxyyy".replace("x", "*",1)#将第一个x替换成*
print(str1)
13.替换
print("欢迎进入三创系统".center(51,("*")))
print("1.登录".ljust(10,"*"))
print("2.注册".rjust(10,"*"))
结果:
**********************欢迎进入三创系统*********************
1.登录******
******2.注册
14.布尔类型
15.空 ' ' 0 0.0 () {} None False 为空