Python学习随笔一:数据类型和字符编码

写在前面

本博客是基于廖雪峰Python教程基础上的自我整理和消化,欢迎大家批评指正。第一节内容将介绍:

  • Python的数据类型
  • 常用编码方式
  • Python编码
  • 格式化输出

Python的数据类型

整数

十进制的表示方法与数学上相同
二进制表示加入前缀0b,如0b111表示7
八进制表示加入前缀0,如0o111表示9
p.s.值得注意的是,在Python2.x中表示八进制的方式有两种:以’0’开头和以’0o’(字母o)开头,而在Python3.x中则废弃了以’0’开头的表示方式,只支持’0o’开头的表示形式

浮点数

Python里定义了两种除法:完全除法‘/’和地板除‘//’
在Python中,有两种除法,一种除法是/:

>>>10 / 3
3.3333333333333335

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>>9 / 3
3.0

还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

>>>10 // 3
3

//除法只取结果的整数部分

字符串

字符串是以单引号’或双引号”括起来的任意文本

\转义字符

e.g. \n表示回车

>>>'I\'m \"OK\"!

表示的字符串内容是:

  >I'm "OK"!

r” ‘ ’里的内容不转义

>>>print('\\\t\\')
\       \
>>>print(r'\\\t\\')
\\\t\\

如果有多行内容,可以用三引号将其包裹起来


print('''line1
line2
line3''')

布尔值

True和False

空值

none

常量

通常用全部大写的变量名表示常量,PI=3.141592654
这只是习惯写法,可以被更改

变量

Python是一种动态语言,不同于Java这类静态语言定义变量时必须指定变量类型,Python的变量类型不固定

常见的字符编码

  • ASCII
    计算机是美国人发明的,最早只有127个字符被编码到计算机里,即大小写英文字母、数字和一些符号
  • GB2312
    中国制定了GB2312编码,用来把中文编进去
  • 日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里
  • Unicode
    把所有语言都统一到一套编码里,现代操作系统和大多数编程语言都直接支持Unicode。
  • UTF-8
    应对Unicode编码比ASCII编码需要多一倍的存储空间(针对英文字母),在存储和传输上就十分不划算的问题。

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

Python编码

在最新的Python 3版本中,字符串是以Unicode编码的
下面整理下,pyhton中有关编码的函数
- 单个字符的编码
ord()函数获取字符的整数表示
chr()函数把编码转换为对应的字符

>>> ord('A')
65
>>> ord('夏')
22799
>>> chr(97)
'a'
>>> chr(38738)
'青'

-多个字符的编码

>>> '\u4e2d\u6587'
'中文'

-转换编码方式

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

纯英文字符可以转化为ASCII码,但含有中文的字符只能转化为UTF-8,转换为ASII码时会报错

格式化输出

在Python中,采用的格式化方式和C语言是一致的,用%实现,如:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

常见的占位符有:

%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

当对格式化整数和浮点数有补0和整数与小数的位数要求时

>>> '%2d-%02d' % (4, 3)
' 4-03'
>>> '%.4f' % 3.1415926
'3.1416'

若要输出一个%,此处用另一个%表示转义

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值