廖雪峰的python笔记( 二)--入门知识(二)

本文深入探讨Python中的数据类型,包括整数、浮点数、字符串、布尔值及空值的概念与应用,同时解析字符串编码,如ASCII、Unicode与UTF-8的区别,以及在Python3中的处理方式。

1.数据类型、变量和常量

  • 整数,浮点数,字符串,布尔值/布尔代数,空值。

1).整数和浮点数在计算机内部的存储方式是不同的,

整数运算时结果是永远精确的,浮点数则会有四舍五入的误差。

python对整数的大小没有限制,浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

2).字符串:

'as'/"as"都可以用来表示字符串。

 \ 为转义字符:

r''表示''内部的字符串默认不转义:

             

'''...'''的格式表示多行内容:

3).布尔值:知道and,or,not的用法就好

4).空值:None表示空值,与数字0还是有区别的,数字0有意义,None只是一个特殊的空值。

  • 变量:动态语言和静态语言

变量类型本身是不固定的:动态语言;更灵活

定义变量时必须制定变量类型:静态语言。

  • 常量:通常用全部大写的变量名表示常量

2.字符串与字符编码

1)编码

Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

  • 最新的Python 3版本中,字符串是以Unicode编码的,Python的字符串支持多语言;
  • ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符;
  • Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

Python对bytes类型的数据用带b前缀的单引号或双引号表示;

注意区分'ABC'b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

ABC'.encode('ascii')
b'ABC'.decode('ascii')

'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
  • 要计算str包含多少个字符,可以用len()函数;len()函数计算的是str的字符数,如果换成byteslen()函数就计算字节数:1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。

  • 当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    

    第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释,赋予权限;

    第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

2)格式化

  • Python中,采用的格式化方式和C语言是一致的,用%实现,如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:
'Hello, %s' % 'world'
'Hi, %s, you have $%d.' % ('Michael', 1000000)

'Age: %s. Gender: %s' % (25, True)
//'Age: 25. Gender: True'

  • format()格式化:用传入的参数依次替换字符串内的占位符{0}{1}、{0:.2f}……

r = (85.0-72.0)/72.0*100
print('scores:%.2f%%' % r)
print('scores:{0:.2f}%'.format(r))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值