python 数据类型

Python中有六种基本数据类型:
Number(数值)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
通过内置函数type()查看其数据类型

1.Number(数值)(包括四种):int(整型)、float(浮点型)、bool(布尔型)、complex(复数型)
###############################################
eg:i = 123
print(i) # 123
print(type(i)) # <class ‘int’>

j = 987.65
print(j) # 987.65
print(type(j)) # <class ‘float’>

k = False
print(k) # False
print(type(k)) # <class ‘bool’>

下句中的j不是前面定义的变量j,而是复数中虚部的标记
x = 1 + 2j
print(x) # (1+2j)
print(type(x)) # <class ‘complex’>
###############################################

2.内置函数isinstance():判断变量是否为某种数据类型的实现
######################################################################################################
eg:i = 123
print(isinstance(i, int)) # True

问题:如何理解布尔类型是一种数值类型?
flag = True
print(‘查看是否为bool类型的实现:’, isinstance(flag, bool)) # 查看是否为bool类型的实现: True
print(‘查看是否为int类型的实现:’, isinstance(flag, int)) # 查看是否为int类型的实现: True
print(‘查看是否为float类型的实现:’, isinstance(flag, float)) # 查看是否为float类型的实现: False
print(‘查看是否为complex类型的实现:’, isinstance(flag, complex)) # 查看是否为complex类型的实现: False

print(True) # True
print(False) # False
print(True + False) # 1
print(False + True) # 1
print(True + True) # 2
print(False + False) # 0
print(True + 123) # 124
print(False + 123) # 123

说明:其实Python2的数据类型中没有布尔类型,用数字0表示False,用数字1表示True
Python3中,为了使用方便,把True、False都定为关键字使用,
做算术运算时,True、False等价于1、0,实现上是布尔类型的实现,也是整型类型的实现
##########################################################################################################

3.Python中的进制:默认使用十进制
二进制用0b表示,八进制用0o表示,十六进制用0x表示
########################################
eg:num1 = 0b10
print(num1) # 2

num2 = 0o10
print(num2) # 8

num3 = 0x10
print(num3) # 16

数值类型的转换:int()、float()、complex()
num4 = 1.23
print(int(num4)) # 1
num5 = 1.56
print(int(num5)) # 1
num6 = 1.67
print(int(num6)) # 1

num7 = 123
print(float(num7)) # 123.0

num8 = 456
print(complex(num8)) # (456+0j)

print(complex(789, 2)) # (789+2j)
######################################

4.算术运算符:+(加)、-(减)、*(乘)、/(除)、%(求余)、**(求幂)、//(取整除,向下取接近商的整数)
import math
############################################################
eg: i = 7
j = 2
print(i + j) # 9
print(i - j) # 5
print(i * j) # 14
print(i / j) # 3.5
print(i % j) # 1
print(i ** j) # 49
print(i // j) # 3

整型和浮点型混合计算时,整型转换为浮点型参与计算
print(2 * 2.5) # 5.0

涉及到圆周率和自然对数,通过导入math模块获取圆周率和自然对数
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045

整型数值和浮点型数值混合运算时,整型转换为浮点型进行运行
print(1//0.1)
print(type(1//0.1))
print(1.0//0.1)
print(0.9//0.1)
print(0.99999999999//0.1)
print(1//0.01)
#############################################################

5.增强型赋值运算符:将算术运算符和赋值号结合起来
+(加)、-(减)、*(乘)、/(除)、%(求余)、**(求幂)、//(取整除,向下取接近商的整数)
############################################################
eg: i = 7
j = 2

i+=j
print(i)  # 9 
i-=j
print(i)  # 7
i*=j
print(i)  # 14
i/=j
print(i)  # 7.0
i%=j
print(i)  # 1.0
i**=j
print(i)  # 1.0
i//=j
print(i)  # 0.0

############################################################

6.位运算符
<<:左移位运算符

:右移位运算符
&:按位与:每位上都是1,才得到1
|:按位或:只要一位上是1,就得到1
^:按位异或:参与计算的两个位上的值不相同时,得到结果为1
~:按位非:

################################
eg:二进制值为:0010
print(‘2<<3:’,2<<3) # 2<<3:16
print(‘2>>3:’,2>>3) # 2>>3:0

2的二进制值为:0010
1的二进制值为:0001
print(‘2&1:’,2&1) # 2&1:0
print(‘2|1:’,2|1) # 2|1:3
print('21:’,21) # 2^1:3
print('2:’,2) # ~2:-3
print('1:’,1) # ~1:-2
#################################

7、比较运算符:得到的是布尔类型的结果
##################################
eg:print('比较12的结果:’,12) #比较1==2的结果: False
print(‘比较1!=2的结果:’,1!=2) #比较1!=2的结果: True
print(‘比较1>2的结果:’,1>2) #比较1>2的结果: False
print(‘比较1<2的结果:’,1<2) #比较1<2的结果: True
print(‘比较1>=2的结果:’,1>=2) #比较1>=2的结果: False
print(‘比较1<=2的结果:’,1<=2) #比较1<=2的结果: True
##################################

8.逻辑运算符:参与运算的是布尔类型的值或者表达式(Ctrl+R批量替换)
#####################################################################################
eg:逻辑与
print(‘True and True的结果为:’,True and True) #True and True的结果为: True
print(‘True and False的结果为:’,True and False) #True and False的结果为: False
print(‘False and True的结果为:’,False and True) #False and True的结果为: False
print(‘False and False的结果为:’,False and False) #False and False的结果为: False

eg:逻辑或
print(‘True or True的结果为:’,True or True) #True or True的结果为: True
print(‘True or False的结果为:’,True or False) #True or False的结果为: True
print(‘False or True的结果为:’,False or True) #False or True的结果为: True
print(‘False or False的结果为:’,False or False) #False or False的结果为: False

eg:逻辑非
print(‘not True的结果为:’,not True) #not True的结果为: False
print(‘not False的结果为:’,not False) #not False的结果为: True
######################################################################################

9.int()函数:返回数值的整数部分
################
eg:
i=3.14
print(int(i)) # 3

j=9.87
print(int(j)) # 9
#################################
round():对数值四舍五入


问题:int()函数和eval()函数的区别
答:int()函数不能用于非整型内容的字符串
eval()函数可以用于非整型内容的字符串,但是不能用于使用数字前导的字符串

print(int(‘3’)) # 3
下句执行出错:
print(int(‘3.14’)) # 3
print(eval(‘3’)) # 3
print(eval(‘3.14’)) # 3.14
下句执行出错:
print(eval(‘03’)) # 3


1.Python中使用英文一对单引号’'或一对双引号""包裹内容形成字符串
字符串是一种序列
##############################################################################
eg:
str1=‘中华人民共和国’
str2=“中国”
print(str1)
print(type(str1)))
print(isinstance(str1,str)
print(str2)
print(type(str2)))
print(isinstance(str2,str) [isinstance(1,2) 判断变量1是不是属于变量2类型]

多行的语句可以写在一行中,使用英文分号进行分隔(不建议使用,可读性差)
str3=‘中华人民共和国’;str4=“中国”
print(str3)
print(str4)

print(id(str1)==id(str3))

长字符串:对于字符串的内容比较多且需要跨行展示,使用一对三单引号包裹起来内容
print(’’‘内容比较多
且需要跨行
展示’’’)
########################################################################

2.字符串的运算符(序列的通用运算符)

字符串:a b c d e f g
索引值:0 1 2 3 4 5 6 (从左向右)
索引值:-7 -6 -5 -4 -3 -2 -1(从右向左)

str = ‘abcdefg’
print(str)

+:字符串之间进行拼接
eg:print(str+‘tempation’)
下句执行出错:
print(str+123)

:重复输出若干次字符串
eg: print(str
2)

3.[]:索引操作,通过索引获取字符串中的字符内容
规则:索引值以0作为开始值
[m:n]:切片操作,通过切片截取字符串中的部分或者全部内容
语法格式:变量[起始索引:结束索引]
规则:包左不包右,索引值从左向右以0作为起始值,从右向左以-1作为起始值
[m:n:s]:切片操作,结合步长通过切片截取字符串中的部分或者全部内容
语法格式:变量[起始索引:结束索引:step]
##########################
eg: print(str[0])
print(str[1])
print(str[:])
print(str[0:2])
print(str[1:-2])
##########################

eg:print(str[3:])

eg:print(str[:3])
print(str[0:6:2])


需求:对已知字符串,通过操作得到逆向内容
eg1:str=‘abcdefg’
print(str[6]+str[5]+str[4]+str[3]+str[2]+str[1]+str[0])

步长的正号表示从左向右方向,负号表示从右向左方向,数值表示间隔数值个获取
eg2:str=‘abcdefg’
print(str[::-1])

eg3:str1=‘abcdefg’
str2=str1*7
print(str2[6::6])


4.in :如果字符串中包含给定字符串,则返回True
not in:如果字符串中不包含给定字符串,则返回True
eg:print('天’in ‘天融信’)
print('天地’in ‘天融信’)
print('天’not in ‘天融信’)

5.字符串特有的%运算符:格式化字符串
常用形式:
%s:格式化字符串内容
%d:格式化整型内容
eg:print(’%s真厉害!’%‘谁知道呢’)
print(‘热烈祝贺%s成立%d周年!!!’%(‘中国人民共和国’,70))

6.字符串的内置函数
str=‘pythontempatation’

(1)len():获取字符串的长度
eg:print(len(str))
(2)find():检测字符串是否包含子字符串
语法格式:str.find(sub[,start[,end]])
Retuen the lowest index in the string where substring sub is found
within the slice s[start:end].
Optinal arguments start and end are interpreted as in slice notation
Return -1 if sub is not found
参数说明:sub:指定被检索的子字符串
start:起始索引
end:终止索引
print(str.find(‘temptation’,0,len(str)))
print(str.find(‘temptation’,7,len(str)))

7.index():检测字符串是否包含子字符串(功能和find()函数类似,找不到子字符串时抛出异常)
语法格式:str.index(sub[,start[,end]])
Like find(),but raise ValueError when the substring is not found.
print(str.index(‘temptation’,0,len(str)))
print(str,index(‘temptation’,7,len(str)))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值