python逻辑型数据也叫布尔值_Python基本数据类型之字符串、数字、布尔

一、数据类型种类

Python中基本数据类型主要有以下几类:

Number(数字)

String(字符串)

Bool (布尔)

List(列表)

Tuple(元组)

Sets(集合)

Dictionary(字典)

由于内容较多,今天就暂时只说 数字,字符串和布尔三种基本类型,其余的下一篇文章再叙述。

二、 基本数据类型--数字

<1> int(整型)

Windows系统中,在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647;

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

<2> long(长整型)

跟C语言不同,Python的长整型没有指定位宽,即:Python没有限制长整型数值的大小,但实际上由于机器内存有限,

我们使用的长整型数值也不可能无限大。从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,

所以现在长整型数据后面不加字母L也没事。

尤其是在Python3里没有long类型了,不论数据大小统一都是int类型。

例如:

a = 2**64    #

b = 2**32    #

print(type(a),type(b)) # type()方法可查看 数据类型

<3>float(浮点型)

float类型和其它语言的float基本一致,浮点数,就是带小数点的数,精度与机器相关。Python 3.x对于浮点数默认的是提供17位数字的精度。

<4>complex (复数)

Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

常用运算:

>>>5 + 4 #加法

9

>>> 4.3 - 2 #减法

2.3

>>> 3 * 7 #乘法

21

>>> 2 / 4 #除法,得到一个浮点数

0.5

>>> 2 // 4 #除法(也叫地板除),得到一个整数

0>>> 17 % 3 #取余

2

>>> 2 ** 5 #乘方

32

还需要注意的几点:

1、Python可以同时为多个变量赋值,如a, b = 1, 2。

2、一个变量可以通过赋值指向不同类型的对象。

3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。

4、在混合计算时,Python会把整型转换成为浮点数。

三、 基本数据类型--字符串

1、注意:在Python中,加了引号的字符都被认为是字符串!

例如:

name = 'cc' # 单引号

age = "21" # 双引号,加了引号就是字符串

info = ‘’‘ Hello everyone, my name is Tom''' # 3个引号也可以

单引号、双引号、多引号有什么区别呢?

单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合。

例如:

info = " He's 21 years old " # 引号嵌套需要区分

多引号又是什么作用呢?

例如:

1 msg = '''

2 生命诚可贵,3 爱情价更高。4 若为自由故,5 二者皆可抛。6     '''

7 print(msg)

像这个例子,多行字符串必须用多引号。

Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

>>> print('Hi\Bob')

Hi

Bob>>> print(r'Jack\Alice')

Jack\Alice>>>

另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。

注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。

Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

Python中的字符串不能被改变。

2、字符串拼接

字符串只能进行"相加"和"相乘"运算。需要注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

name = 'cc'age= '21's1= name + age #相加其实就是简单拼接

print(s1) #' cc21'

s2 = name*3 ##相乘其实就是复制自己多少次,再拼接在一起

print(s2) #cccccc

3、字符串常用方法(较多,以代码展示)

ContractedBlock.gif

ExpandedBlockStart.gif

1 #!/usr/bin/env python3

2 #!-*- coding:utf-8 -*-

3 #write by congcong

4

5 s = 'Hello World!'

6 print(s.capitalize()) #首字母大写,输出:Hello world!

7 print(s.count('l'),s.count('o',0,6)) #统计指定元素出现的次数,输出:3 1

8 print(s.center(30,'-')) #字符串居中后,其余位置用指定元素替代

9

10 print(s.endswith('!')) #判断字符串以什么结尾,输出:True

11

12 s1 = 'a\tb'

13 print(s1) #\t默认输出空4格,输出:a b

14 print(s1.expandtabs(),s1.expandtabs(20))#扩展输出到空8格,20格,输出:a b a b

15

16 print(s.find('W'),s.find('w'))#查找指定的元素,并返回其索引值,当没有找到时,返回负数。输出:6 -1

17 print(s.find('o',0,6),s.find('o',0,10))#可以指定索引范围内查找,当找到多个时返回第一个索引值,输出:4 4

18

19 s2 = "My name is {0}, I'm {1} years old!"

20 print(s2.format('cc',21),id(s2)) #格式化输出方法一,输出:My name is cc, I'm 21 years old! 1942924504296

21 s2 = "My name is {name},I'm {age} years old!"

22 print(s2.format(name='sc',age=21),id(s2)) #格式化输出方法二,输出:My name is sc,I'm 21 years old! 1942924504384

23 '''两次s2的赋值,并非后一次对前一次的简单覆盖,而是重新分配内存,实质是引用的改变,查看两个s2的id可以验证'''

24

25 print(s2.isdigit()) #判断字符串是否由数字组成 ,此处输出:False

26 s2 = '12'#赋值12时会报错AttributeError: 'int' object has no attribute 'isdigit'(属性错误:“int”对象没有属性“isdigit” )

27 s3 = '12.5'

28 print(s2.isdigit(),s3.isdigit()) #输出:True False

29 print(s2.isdecimal(),s3.isdecimal()) #输出:True False,作用与isdigit相同

30 print(s2.isnumeric(),s3.isnumeric()) #输出:True False,作用与isdigit相同

31

32 s3 = 'Hello everyone , my name is cc,I am 21 years old...'

33 print(s3.index('m',0,20)) #寻找指定元素的索引值并将其返回,不在搜索范围内会报错,输出:17

34 print(s3.find('my',0,20),s3.find('my',0,10)) #寻找指定元素的索引值并将其返回,不在搜索范围内不报错,会返回-1,输出:17 -1

35

36 print(s3.isalnum()) #判断字符串是否仅由数字和字母任意组合组成,此处输出:False

37 s3 = 'hgnc2017'

38 print(s3.isalnum()) #输出:True

39 s4 = 'HGNZ'

40 print(s4.isalpha(),s3.isalpha()) #判断字符串是否仅由字母组成,输出:True False

41

42 print(s3.isidentifier()) #判断字符串是否是合法的变量

43 s3 = '2018_welcome'

44 print(s3.isidentifier(),s4.isidentifier()) #输出:False True

45

46 print(s3.islower(),s4.islower()) #判断字符串中字母是否小写 ,输出:True False

47 print(s3.isprintable()) #判断是否可打印(Linux中较常用,一切东西皆文件,但仅文本文件可打印),输出:True

48 s4 = 'Hgsf Jyjsx'

49 print(s3.istitle(),s4.istitle()) #判断是否为标题格式,输出;False True

50 s5 = 'HGSF JYJSX'

51 print(s4.isupper(),s5.isupper()) #判断是否都是大写,输出:False True

52 s5 = ' '

53 print(s4.isspace(),s5.isspace()) #判断是否都是空格,输出:False True

54

55 names = ['cc','fm','zl']56 n = ','.join(names) #将列表拆成字符串,并规定以何种方式连接

57 print(n,'-'.join(names)) #输出:cc , fm , zl cc - fm - zl

58 print(s4.ljust(20,'-')) #将字符串凑成指定的长度输出,从左开始数,右边不足的部分可以为空或指定元素凑齐,输出:Hgsf Jyjsx----------

59 print(len(s4.ljust(20,'-'))) #输出:20

60 print(s4.rjust(20,'*')) #将字符串凑成指定的长度输出,从右开始数,左边不足的部分可以为空或指定元素凑齐,输出:**********Hgsf Jyjsx

61

62 s5 = 'lu fei xue cheng'

63 print(s5.upper()) #以大写输出,输出:LU FEI XUE CHENG

64 s5 = 'Lu Fei'

65 print(s5.lower()) #以小写输出, 输出:lu fei

66 s5 = '\n\t congcong\n\t'

67 print(s5) #输出: congcong

68 print(s5.strip()) #除去\n\t和两侧的空格,输出:congcong

69 s6 = "\ncongcong \n"

70 print(s6.lstrip()) #只去除字符串左侧的空格和换行

71 print(s6.rstrip()) #只去除字符串右侧的空格和换行

72

73 str_in = 'a m c o n g I'

74 str_out = '0 1 2 3 4 5 6'

75 print(str.maketrans(str_in,str_out)) #maketrans创建字符映射的转换表

76 table = str.maketrans(str_in,str_out)#转换表:{97: 48, 32: 32, 109: 49, 99: 50, 111: 51, 110: 52, 103: 53, 73: 54}

77 str_input = 'I am congcong'

78 print(str_input.translate(table))#按映射表进行转换字符串,输出:6 01 23452345

79

80 s1 = 'one or two'

81 print(s1.partition('or')) #按指定的字符进行划分,输出:('one ', 'or', ' two')

82

83 print(s1.replace('or','and'))#用指定的后一个元素替换前一个元素,输出:one and two

84 print(s1.replace('o','p',2))#替换指定的数量,输出:pne pr two

85

86 print(s1.rfind('o'))#有多个时,首先返回最右侧的那个,输出:9

87 print(s1.rindex('o'))#同rfind类似,但没找时会报错,输出:9

88 s2 = 'one and three'

89 print(s1.rpartition('o'),s2.rpartition('n')) #当用于指定划分的元素有多个时,选择最右侧的那个作为划分依据,输出:('one or tw', 'o', '') ('one a', 'n', 'd three')

90

91 print(s2.split())#将字符串变为列表,默认以空格划分,输出:['one', 'and', 'three']

92 print(s2.split('n'))#还可任意指定字符划分,但指定的字符会消失,输出:['o', 'e a', 'd three']

93 print(s2.rsplit('n',1)) #从右侧分,只分一次。输出:['one a', 'd three']

94 s3 = '\nqwert\nasdf\nzxcv\n'

95 print(s3.splitlines())#以换行作为划分依据,输出:['', 'qwert', 'asdf', 'zxcv']

96 print(s2.startswith('a',4,9)) #判断是否以指定的元素作为开头,可以指定起点和终点

97 s4 = 'HELLO WORLD!'

98 print(s2.swapcase(),s4.swapcase())#大写转小写,小写转大写,输出:ONE AND THREE hello world!

99

100 print(s4.title())#将字符串以标题形式输出,输出:Hello World!

101

102 print(s4.zfill(30)) #输出指定长度的字符串,长度不够的部分以0填充,输出:000000000000000000HELLO WORLD!

103

104 '''

105 最常用方法(必须掌握):106 isdigit 判断是否为整数107 replace 替换指定的字符,可指定范围108 find 查找指定的元素,若没有,返回-1109 count 统计字符串中指定的字符数量110 strip 脱去字符串两侧的换行和空格111 center 在指定的范围长度内使指定的字符串居中,不足的部分用指定的元素填充112 split 将字符串转成列表,默认是以空格划分,指定划分元素时,划分元素消失113 format 格式化字符串114 join 用指定的元素来连接字符串中的各个字符115

116 '''

View Code

四、基本数据类型--布尔(bool)

布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用于逻辑判断。如下例所示:

a = 3b= 5

print(bool(a>b)) #False

print(bool(a

友情提示:未完待续,下一篇继续学习Python基本数据类型里的列表,元组,字典,集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值