一、数字:在python中有3中类型的数——整数、浮点数和复数
1、整数(int):
1)python2 vs python3
在python2中区分整型和长整型(long),长整型的整数可以无穷大;在python3中统称为整型
2)进制表示:
二进制:以0b开头,只包含0和1;二进制转换(bin):接收一个int,返回一个str
八进制:以0o开头,只包含0-7;八进制转换(oct):接收一个int,返回一个str
十六进制:以0x开头,包含0-15;十六进制转换(hex):接收一个int,返回一个str
类型转换函数(int):转换成10进制,接收一个int/str,返回一个int
2、浮点型(float):浮点数即带有小数点的数字;float是不精确的
Decimal类型:数据是精确的小数,可以传递给Decimal整型或者字符串参数
从浮点数据转换为Decimal类型:
from decimal import getcontext,Decimal,Context
mydec = Decimal.from_float(12.22)
print(mydec)
mydec = Decimal(12.22)
print(mydec)
# 结果为Decimal('12.2200000000000006394884621840901672840118408203125')
从字符串转换为Decimal类型:
mydec = Decimal('3.14')
print(mydec)
# Decimal('3.14')
3、复数(complex):是实数和虚数的统称
复数的表示:
6.23 + 1.5j
-1.32-854j
0 + 1j
二、字符串:是字符的序列
1、字符串的表示方法:
1)使用单引号
print('hello,world')
2)使用双引号
print("hello,world")
3)使用三引号(一般用于输出多行)
a = """hello
world
"""
4)特殊标记(r)
a = r"hello\tworld"
# 输出为:hello\tworld
2、转义字符:是一种特殊的字符常量;以反斜线"\"开头,后跟一个或几个字符;具有特定的含义,不同于字符原有的意义
\\:反斜杠符号
\':单引号
\":双引号
\a:响铃
\n:换行
\t:横向制表符
\r:回车
\f:换页
3、字符串取值
1)下标取值法
2)切片取值法:str[start:end:step] (step默认为1)
①如果step为正,表示从左到右截取;如果step为负,表示从右到左截取
②确认start和end的位置
③确认step的步长是多少
4、字符串的常用方法
1)判断系列(True/False)
str,isdigit() #字符串中是否只包含数字
str.isnumeric() #字符串中是否只包含数字(包括中文一到九等)
str.isalnum() #字符串中是否只包含字母或数字
str.istitle() #字符串中是否每个单词首字母大写,其他字母小写
str.isalpha() #字符串中是否只包含字母(汉字会算作字母)
str.isupper() #字符串中是否全为大写
str.isidentifier() #字符串是否为合法标识符
str.isprintable() #字符串是否为可打印字符
str.islower() #字符串中是否全为小写
str.isspace() #字符串中是否只包含空格(tab也算空格)
str.startswith() #字符串是否以某字符串开始
str.endswith() #字符串是否以某个字符串结束
2)查找统计类
len(string) #统计字符串长度
str.count() #统计某字符在字符串里出现的长度
str.index() #显示某字符在字符串中第一次出现的下标位置,没有会报错
str.find() #查找某字符在字符串中第一次出现的下标位置,找到返回其起始位置,找不到返回-1
3)字符串转换类
str.upper() #将字符串转换为大写
str.lower() #将字符串转换为小写
str.title() #将字符串中的单词首字母大写,其他字母小写
str.split('sep') #指定'sep'作为分隔符将字符串切割成列表,分隔符可以是任意字符
'str'.join(list) #将列表用str拼接成一个大字符串
str.strip([string]) #去除字符串中首尾的字符串,不带参数默认去除空格
str.zfill(number) #返回指定长度的字符串,原字符串右对齐,前面填充0
str.replace('old','new'[,count]) #用新的字符替换老字符,还可以指定替换的个数,默认全部替换
str.capitalize() #句子首字母大写
str.center(width[, fillchar]) #返回一个原字符串居中对齐,width为总长度
str.ljust(width[, fillchar]) #返回一个原字符串靠左对齐,两边用一个字符fillchar填充
str.rjust(width[, fillchar]) #返回一个原字符串靠右对齐
str.expandtabs(number) #将\t转换成number个空格
5、python字符串拼接
1)加号拼接
a = 'I' + 'Love' + 'Python'
print(a)
2)join拼接
a = ['I','Love','Python']
print(''.join(a))
6、python字符串格式化
1)格式化-%
基本格式:%[(name)][flags][width].[precision]typecode
- (name):命名
- flags:+,-,' '或0。+表示正数前面填充“+”号;-表示左对齐;' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐,0表示使用0填充。
- width:表示显示宽度 - precision:表示小数点后精度
a = "%s %s %s" %('I','Love','python')
# 按位置
#%s表示字符串 %d表示整型十进制
#%f表示浮点型 %o表示八进制
#%x表示十六进制 %%表示%本身
print("第一个格式化:%010x" % 10)
#输出:第一个格式化:000000000a
print("第二个格式化:%-11x" % 10)
#输出:第二个格式化:a
print("第三个格式化:%+x" %10)
#输出:第三个格式化:+a
print("第四个格式化:%010.3f"%2.4352341)
#输出:第四个格式化:000002.435
print("第五个格式化:%.4f"%4.2547825) # 要四舍五入
#输出:第五个格式化:4.2548
print("第六个格式化:%s %%"%("sc"))
#输出:第六个格式化:sc %
2)格式化-format
基本格式:{变量:[填充字符][对齐方式 <^>][宽度][格式]}
name = "hahyyy"
age = 18
print("format01 --> 姓名:{},年龄:{}".format(name,age))
#输出:format01 --> 姓名:hahyyy,年龄:18
print("format01 --> 姓名:{1},年龄:{0}".format(name,age))
#输出:format01 --> 姓名:18,年龄:hahyyy
print("format01 --> 姓名:{x},年龄:{y}".format(x = name,y = age))
#输出:format01 --> 姓名:hahyyy,年龄:18
print("format02 --> {0:*>8}".format(10,20))
#输出:format02 --> ******10
print("format02 --> {num:@^10}".format(num=35))
#输出:format02 --> @@@@35@@@@
# 精度与进制:
print("format02 --> {1:*>15.2f}".format(1/3,6.3333333333))
#输出:format02 --> ***********6.33
print("format02 --> {0:x}".format(10))
#输出:format02 --> a
# 千分位格式化:
print("format02 --> {0:,}".format(123456789))
#输出:format02 --> 123,456,789
# 使用索引:
li = "hoho",18
print("name is {0[0]} age is {0[1]}".format(li))
#输出:name is hoho age is 18
3)格式化-f (python2中没有)
a = "I"
b = "Love"
c = "Python"
d = f"{a} {b} {c}"
print(d)
#输出:I Love Python
三、布尔类型
1、布尔值:是一个逻辑值
2、取值范围:只有Ture和False
四、其他
1、常量:是指一旦初始化后就不能修改的固定值
注意:在python中表示一个常量通常用大写表示,如:PI=3.1415926
2、None:表示什么也没有