python的基本数据类型:Number、String的学习笔记

一、变量

1、Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。(和java不同)

2、在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

3、等号(=)用来给变量赋值。

4、多个变量赋值:

#方法一
a = b = c = 1 

#方法二
a, b, c = 1, 2, "runoob"

二、标准的6种数据类型

三、Number

Python3 支持 int、float、bool、complex(复数)

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

3.1、 type() 函数

查询变量所指的对象类型

a,b,c,d = 1,2.2,True,1+3j 
print('''type(a),type(b),type(c),type(d)''') 

#输出结果 
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

 

3.2、isinstance(变量,数据类型)

判断是否是对应的数据类型

numberType = 1
print(isinstance(numberType,int))
numberType2 = 2.2
print(isinstance(numberType2,float))
numberType3 = True
print(isinstance(numberType3,bool))
numberType4 = 1+1j
print(isinstance(numberType4,complex))
print(isinstance(numberType4,int))#不是对应的数据类型

#输出结果
True
True
True
True
False#不是对应的数据类型判断结果是False

 

3.3、isinstance() 和 type() 的区别

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
#如果B继承了A
class A:
    pass
  
class B(A):
    pass

isinstance(A(), A)
True

type(A()) == A
True

isinstance(B(), A)
True                  #isinstance 认为子类是一种父类类型

type(B()) == A
False                 #type 不认为子类是一种父类类型

 

3.4、issubclass(B,A)

判断B是否是A的子类。

Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。

 

3.5、del语句

当你指定一个值时,Number 对象就会被创建:

var_a=1
var_b=2.2

不需要这些对象时,可以用del语句删除一些对象引用

语法:del var_a,var_b...

 

3.6、数值运算

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

 

四、String

1、字符编码

字符串也是一种数据类型,但是,字符串比较特殊的是有一个编码问题。

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

(因为我经常混乱所以提醒一下自己:内存和硬盘不是同一个东西)

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

 

2、String的特点

  • Python 中单引号 ' 和双引号 " 使用完全相同。
  • 使用三引号(''' 或 """)可以指定一个多行字符串。
  • 转义符 \。反斜杠\还可以作为续行符
  • 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
  • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复,与*结合的数字为复制的次数。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python 中的字符串不能改变。如果向一个索引位置赋值,比如word[0] = 'm'会导致错误。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

 

3、访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

 

我对上图的理解:

3.1、索引

#方式一:从前往后[0]开始递增
>>>str[1]
'R'

#方式二:从后往前[-1]开始递减
>>>str[-2]
'b'

3.2、截取

#方式一:从前往后[0:]递增的方式截取
>>>str[1:]
'unoob'
>>>str[1:4]
'uno'

#方式二:从后往前[:-1]递减
>>>str[:-2]
'Runo'
>>>str[:4]
'Runo'

#注意截取规则:左闭右开,例:str[:4]不包含第4个字符

 

4、python字符串运算符

 

5、python转义字符

在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:

 

6、python字符串格式化(3种方法)

6.1、格式化字符串方法1:%运算符

基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

#例1
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
#输出结果
我叫 小明 今年 10 岁!

#例2
'Hi, %s, you have $%d.' % ('Michael', 1000000)
#输出结果
'Hi, Michael, you have $1000000.'

#例3
#格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
#输出结果
 3-01
3.14

#例4
#如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:
'Age: %s. Gender: %s' % (25, True)
#输出结果
'Age: 25. Gender: True'

#例5
#字符串里面的%是一个普通字符,这个时候就需要转义,用%%来表示一个%:
'growth rate: %d %%' % 7
#输出结果
'growth rate: 7 %'
  • python格式化字符串的占位符:

  • 格式化操作符辅助指令:

 

 

6.2、格式化字符串方法2:format()

字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'

 

6.3、格式化字符串方法3:f-string

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

#
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
#上述代码中,{r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62。

#
#在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
>>> x = 1
>>> print(f'{x+1}')   # Python 3.6
2

>>> x = 1
>>> print(f'{x+1=}')   # Python 3.8
x+1=2  # 打印出来的是表达式和结果

7、python字符串三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

#输出结果
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]。

#三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
典型的用例是,当你需要一块HTML或者SQL时:
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

 

9、python字符串的内建函数

总结

1、python有6种标准数据类型

2、number、string

 

原文地址:https://www.cnblogs.com/zhanym/p/15744351.html