python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

一、数据类型

  python可以直接处理的数据类型有:整数、浮点数、字符串、布尔值、空值。

  整数

  浮点数

  字符串:双引号内嵌套单引号,可以输出 i'm ok.

      也可以用来实现, 换行 table 

      多行字符串用  ''' '''

  布尔值: 可以对布尔值进行与或非运算/ 与and 或or 非not

  空值

二、变量

   a = 1/ a = "nadech"    与java不同,python在声明一个变量的时候不用指定变量的类型,直接赋值就可以了

  在 执行a =1 的时候,python解释器实际上执行了两步操作:创建整数1;声明变量a,并且把变量a指向整数1

  常量PI,即使声明为了常量,但是python没有真正的常量

  python中整数除法是精确的:10/3 =3.333333333333  地板除法:10//3=3

  保留两个小数点

 

python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)
a = 1
b = 3
print(a/b)
#方法一:
print(round(a/b,2))
#方法二:
print(format(float(a)/float(b),'.2f'))
#方法三:
print ('%.2f' %(a/b))
python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

三、编码方式

  几种编码的方式和编码的进化!!!!

  ASCII编码,只能编码127个字符,所以数量有所限制

  GB2312(2个字节)中国用来编写中文并且建立在ASCII码上,不能与ASCII冲突。之后,韩国、日本都有自己的编码 and so on.

  Unicode编码(2个字节),把所有语言都统一到一套编码里。缺点是2个字节,浪费存储空间。

  UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。UTF-8的好处就是兼容ASCII码,节省空间。

    用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

    浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。

 四、python字符串的编码/字符串的格式化输出

  单个字符的编码:

>>> ord('爱')
29233
>>> chr(29233)
'爱'
>>>

  多个字符的编码:

  当字符的内容只包含ASCII编码的内容时,可以直接使用:

1
2
>>> b"I LOVE YOU!"
b'I LOVE YOU!'<br><br><br>

  

1
2
>>> "I LOVE YOU!".encode()
b'I LOVE YOU!'

  多个字符且包含中文的时候,只能使用encode和decode

python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)
#从这里也可以看出在utf-8的编码中,一个中文需要三个字节
>>> "我爱你".encode("utf-8") b'xe6x88x91xe7x88xb1xe4xbdxa0'
#这里特别要注意b'xe6'和‘xe6'表示的完全不一样,前边表示一个bytes类型的数据,后者是一个str类型的字符串 >>> b'xe6x88x91xe7x88xb1xe4xbdxa0'.decode("utf-8") '我爱你'

python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

  len()可以用来计算str或者是bytes的长度

>>> len('我爱你')
3
>>> len( b'xe6x88x91xe7x88xb1xe4xbdxa0')
9

  字符串的格式化,除了%s 还有%d %f %x等占位符,但是由于都可以用%s来输出,所以就没有必要使用其他的了。

  除此之外还有 str.format()方式也可以用来格式化字符串,但是没有%s好用。但是当输入的字符串内容本身含有%,例如 7%时,需要使用 %%转义符

>>> "hello %s"%"nadech"
'hello nadech'

>>> nadech = "YGR"
>>> "hello %s"%nadech
'hello YGR’