Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2793142
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Python/Ruby

2013-02-26 16:14:44

由于python不需要显示的声明变量的类型,变量的类型由python内部管理,在程序的后台实现数值与类型的关联,以及类型转换等操作

一、 数值类型

Python语言的数值类型有四种,分别是:整型、长整型、浮点型和复数类型。下面我们首先介绍整型数据。

1.整型

Python语言的整型相当于C语言中的long型,在32位机器上,整型的位宽为32位,取值范围为-231~231-1,即-2147483648~2147483647;在64位系统上,整型的位宽通常为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807。
Python中的整数不仅可以用十进制表示,也可以用八进制和十六进制表示。当用八进制表示整数时,数值前面要加上一个前缀“0”;当用十六进制表示整数时,数字前面要加上前缀0X或0x。例如,我们这里将整数15分别以八进制和十六进制的形式赋给整型变量a和b,然后再以十进制的形式输出它们。

与数值有关的字符串格式化字符及其作用如下所示:

? d:   有符号十进制整数
? u:   无符号十进制整数
? o:   无符号八进制整数
? x:   无符号十六进制整数,a~f采用小写形式
? X:   无符号十六进制整数,A~F采用大写形式
? f:    浮点数
? e,E: 浮点数,使用科学计数法
? g,G: 浮点数,使用最低有效数位

2.长整型

跟C语言不同,Python的长整型没有指定位宽,也就是说Python没有限制长整型数值的大小,但是实际上由于机器内存有限,所以我们使用的长整型数值不可能无限大。
在使用过程中,我们如何区分长整型和整型数值呢?通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整型的,例如:

a = 6812347598L
b = 6812347598l

读者可能已经发现,小写字母l和数字1看上去很难区分,所以一般推荐使用大写字母L。

注意,自从Python2.2起,如果发生溢出,Python会自动将整型数据转换为长整型,所以如今在长整型数据后面不加字母L也不会导致严重后果了。

4.复数类型

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。注意,虚数部分的字母j大小写都可以,如5.6+3.1j,5.6+3.1J是等价的。

点击(此处)折叠或打开

  1. #coding:utf-8
  2. #!/usr/bin/python
  3. # Filename: numerical.py

  4. #这是用来说明你的Python源程序文件用使用的编码。缺省情况下你的程序需要使用ascii码来写,
  5. #但如果在其中写中文的话,python解释器一般会报错,但如果加上你所用的文件编码,python就会自动处理不再报错。

  6. ###################################################################
  7. #脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单
  8. ##!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
  9. ##!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。
  10. ##当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
  11. ##!/usr/bin/python相当于写死了python路径;
  12. ##!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法
  13. ###################################################################

  14. #整型
  15. i=1
  16. print type(i),"我"
  17. #长整型
  18. l=9999999999999L
  19. #浮点型
  20. f=1.2
  21. #布尔类型
  22. b=True
  23. #8进制
  24. a=017

  25. print type(i),type(l),type(f),type(b)
  26. print "8进制 %d " %a

  27. <type 'int'>
  28. <type 'int'> <type 'long'> <type 'float'> <type 'bool'>
  29. 8进制 15



二 Python字符串类型

Python拥有两种字符串类型:标准字符串(str)是单字节字符序列,Unicode字符串(unicode)是双字节字符序列。

在Python中定义一个标准字符串(str)可以使用单引号、双引号甚至三引号,这使得Python输入文本比C#更方便。

比如当str的内容中包含双引号时,就可以用单引号定义,反之亦然。(根据自己习惯)

      当字符中有换行符等特殊字符时,可以直接使用三引号定义。

这样就方便了很多,不用去记那些乱七八糟的转义字符。当然Python也支持转义字符,且含义和C#基本一样。不过既然有简单的东西用,谁还去自找麻烦呢?


另外,Python字符串类型没有C#中的字符类型,再短的文本也是字符串,这点稍微注意一下就可以,因为现在使用C#的也很少用char了吧?

当使用utf-8编码时,非unicode字符中一个汉字的长度是3,而使用gb2312时是2,

最后,关于字符串的操作方法,基本上C#有的Python都有,可以看看Python字符串类型手册之类的资料,我就不多说了。唯一提一点就是在Python中提取一个字符串的子串时,记得用“切片”语句(后边讲列表和元组时还会介绍),而不要再去找SubString了,见下边的例子:


  1. # -*- coding: utf-8 -*-
  2. str1 = u'我是派森'
  3. print str1[2:4]
  4. #输出 '派森'
阅读(3845) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~