python

Python中的简单类型

我爱IT资讯库   2021/02/22

整数 & 浮点数

整数有两种,分别是 int 和 long。其中 int 最大值是 2147483647 (sys.maxint),而 long 长度仅受内存大小限制。

>>> a = 123
>>> b = 123L
>>> type(a)
<type 'int'>
>>> type(b)
<type 'long'>


浮点数基本上也没有什么特别之处,不过要注意下面写法不同。

>>> a = 1
>>> b = 1.0
>>> type(a)
<type 'int'>
>>> type(b)
<type 'float'>


和数字有关的函数有:

1. abs(x) 取绝对值。

>>> abs(-10)
10


2. coerce(x, y) 将两个数字转换成相同类型。

>>> a = 1.0
>>> b = 2
>>> s = coerce(a, b)
>>> type(s)
<type 'tuple'>
>>> s
(1.0, 2.0)


3. pmode(a, b) 获取商和余数。返回一个 tuple,如 (2, 1) 分别是商和余数。

>>> s = pmod(5, 2)
>>> s
(2, 1)


4. pow(x, y) 取幂,和 ** 操作符意义相同。

>>> pow(2, 3)
8
>>> 2 ** 3
8


5. round(x, [n]) 四舍五入

>>> round(2.4567, 2)
2.46


6. min(x [, y, z...]) 返回最小的一个数。

>>> min(5, 4, 3, 2, 1)
1


7. max(x [, y, z...]) 返回最大的一个数。

>>> min(5, 4, 3, 2, 1)
5


8. cmp(x, y) 比较数字。x > y 返回 1, x == y 返回 0, x < y 返回 -1。

>>> cmp(2, 1)
1
>>> cmp(1, 1)
0
>>> cmp(1, 2)
-1


字符串

Python 中没有字符(char)类型,而且和 C# 一样,字符串是不可以更改的。字符串可以使用单引号(')也可以使用双引号("),或者使用三引号使其跨越多行。

>>> s = """a
b
c
d"""
>>> s
'a\nb\nc\nd'


字符串同样支持转义符。还记得 C# 字符串前面那个常用的 "@" 吗?Python 也有类似的东西,就是 "r"。

// C#
string s = @"c:\windows\notepad.exe";

// Python
s = r"c:\windows\notepand.exe"


比较有意思的是,Python 中的字符串支持使用乘号来创建一个连续字符串。如:

>>> s = "abc" * 6
>>> s
'abcabcabcabcabcabc'


尽管没有字符类型,但依然可以使用索引号来获取字符串中的字符。

>>> s = "abc"
>>> s[0]
'a'


Python 拥有非常方便的切片处理能力,我们可以使用负索引号从字符串结尾进行索引。

>>> s = "abcdefg"
>>> s[1:-2]
'bcde'


这里需要提一下,Python 比较古怪的多变量赋值方式。

>>> a, b, c = (1, 2, 3)
>>> a
1
>>> b
2
>>> c
3
>>> a, b, c = "123"
>>> a
'1'
>>> b
'2'
>>> c
'3'


Python 同样支持格式化字符串,类似 C# 中的 String.Format。包括各种类型以及固定宽度输出。

>>> s = "string = [%-5s], int = [%05d], float = [%.2f]" % ("a", 5, 3.1415)
>>> s
'string = [a ], int = [00005], float = [3.14]'


Python 使用如下方式支持 Unicode。

>>> s = u"abc"
>>> type(s)
<type 'unicode'>
>>> s += "sss"
>>> s
u'abcsss'
>>> a = str(s)
>>> a
'abcsss'
>>> unichr(97)
u'a'


和字符串相关的常用函数有:

1. lstrip() / rstrip() / strip() 好像多数语言都命名为 LTrim() / RTrim() / Trim()。

>>> " abc ".strip()
'abc'


2. expandtabs() 将 TAB 替换成指定数量的空格。

>>> "\tabc".expandtabs(2)
' abc'


3. lower() / upper() 大小写转换。

>>> "ABC".lower()
'abc'
>>> "abc".upper()
'ABC'


4. swapcase() / title() / capitalize() 分别将全部字符,每单词首字符,短语首字符转成大写。

>>> "hello, world!".swapcase()
'HELLO, WORLD!'
>>> "hello, world!".title()
'Hello, World!'
>>> "Hello, World!".capitalize()
'Hello, world!'


5. isxxxx 判断字符串... 没啥好说的。

>>> "abcd".isalpha()
True
>>> "abcd".isalnum()
True
>>> "abcd".isdigit()
False
>>> "1abc".isdigit()
False
>>> "123".isdigit()
True
>>> " ".isspace()
True
>>> " ".isupper()
False


6. find() 查找子串,类似的还有 index() / rindex() / rfind()。rxxx 表示找最后一个子串, index 在找不到时会触发异常。

>>> "abcdefg".find("d", 1, -1)
3
>>> "abcdefg".find("d", 1, -4)
-1
>>> "aa1111aaa".rfind("aaa")
6
>>> "aa1111aaa".index("b")

Traceback (most recent call last):
 File "<pyshell#87>", line 1, in <module>
 "aa1111aaa".index("b")
ValueError: substring not found


7. startwith() / endwith() 判断是否以某个子串开始或结束。

8. count() 统计子串数量。

9. replace() 替换子串

>>> "abc".replace("b", "1")
'a1c'


10. splite() 分解字符串。

>>> "a b c d".split(" ")
['a', 'b', 'c', 'd']
>>> "a b c ".split(" ", 2)
['a', 'b', 'c d']


11. join() 连接字符串。

>>> "|".join(["a", "b", "c"])
'a|b|c'


类型转换

转换函数和多数编程语言类似。

>>> int("123")
123
>>> long("123")
123L
>>> float("123.45")
123.45
>>> float(123)
123.0
>>> float(123L)
123.0
>>> ord("a")
97
>>> chr(97)
'a'
>>> hex(97)
'0x61'
>>> str(123)
'123'




热门内容

JS-时间函数

/** * 日期范围工具类 */ var daterangeutil = (function () { /** ...
“大数据”信息平台 覆盖社区5000老年人

“大数据”信息平台 覆盖社区5000老年人

突然头疼脑热,身边没人照顾;电灯坏了、水管漏了,该找谁来帮忙修?菊园新区智慧养老项目搭建了一个为老综合服务平台... ...

在PHP中全局变量的使用详解

即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的。一些常见的全... ...

名称空间也可以自定义

名字空间的定义 名字空间除了系统定义的名字空间之外,还可以自己定义,定义名字空间用关键字namespace,使用名字空 ...
从量价变化中洞察主力意图

从量价变化中洞察主力意图

成份B指(399003.SZ) <script language="JavaScript" typ... ...
android 继承view类刷新页面【安卓进化十一】

android 继承view类刷新页面【安卓进化十一】

       最近做项目中发现,继承了view类的子类... ...

C# XmlSerializer 对象的Xml序列化和反序列化

    .Net程序执行时,对象都驻留在内存中;内存中的对象如果需要传递给其他系统使用;或者在... ...

hdu-1286找新朋友(欧拉函数,水题)

题目链接: 找新朋友 time limit: 2000/1000 ms (java/others)memory limi ...

java程序 处理 andrid本地帮助文档打开慢的方式

    下载本地的android自带sdk帮助文档由于有被墙的google地址,可以通... ...

RTTI学习笔记

翻看C++的书,对RTTI的讲解都很困惑,"你知道你的对象是哪个类吗","RTTI常用于调试和数据库程序"对这些讲... ...

使用axis2传输附件

服务端Service文件: import java.io.FileOutputStream; import jav... ...

sql server 的行转列

sql server中行转列在sql2005之后,sqlserver引入了pivot运算符,也即是可以旋转行为列,... ...
【Node.js基础篇】(九)使用readline模块实现Node.js的输入输出

【Node.js基础篇】(九)使用readline模块实现Node.js的输入输出

学C++的时候,有cout和cin,Java也有println和Scanner控件,Node.js也有如同... ...
iOS 应用支持4寸屏

iOS 应用支持4寸屏

iPhone 5出了,一大批应用要兼容新的分辨率,下载了Xcode 4.5,在官方那里找不到有关兼容新分辨... ...

循环执行oracle到mysql的迁移步骤及各种注意事项

改章节笔者在北京逛街的时候突然想到的...今天就有想写几篇关于循环执行的笔记,所以回家到之后就奋笔疾书的写出来发表了 ... ...
2015收获的季节

2015收获的季节

—————————————————————前言————————————————————— ———————... ...

JSP中的pageEncoding和contentType属性

关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是js... ...

对XX证券报关于物联网操作系统的几个问题的答复

XX证券报提问了几个关于物联网和物联网操作系统的问题,个人表达了一些粗陋的观点,在这里发表出来,与行业朋友交流和探... ...
In语句优化

In语句优化

In语句的优化 现有两张表: CLINIC_ORGANISM 数据量:1400 LAB_DRUGRESISTITE... ...
fuzzysearch, 在JavaScript中,快速而快速的模糊搜索

fuzzysearch, 在JavaScript中,快速而快速的模糊搜索

源代码名称:fuzzysearch源代码网址:http://www.github.com/bevacqua/fuzzys ...

SQL Server里的 ISNULL 与 NULLIF

SQL Server 中有两个参数,语法:     ISNULL(check_... ...

判断SD是否存在及其容量查询

这个非常简单,直接上代码: MainActivity: package com.home.getsdinf... ...

Python:如何排序(sort)

一、前言 python的列表(list)有两个排序方法: 一种是内建的list.sort()方法,可以直接改变列表的内容 ...

boost库在工作(5)作用域智能指针scoped_ptr之四

第二种情况,主要就是使用在调用异常抛出的函数的地方。如下面的例子: //异常抛出的函数,适合使用智能指针... ...

Error:couldnotopen`C:\ProgramFiles\Java\jre6\lib\i386\jvm.cfg'

昨天刚过情人节!哈哈,好久没记录学习内容了,今天在房子闲着没事重新安装jdk,按道理很简单的; 第一步下载jdk; ...

第49周二

晚上总结下今天,主要是在完善用户需求文档,同时看了jquery相关的操作技巧,主要是想学习jquery源码,在知乎jqu ...

C++ #include 和 using std::string

今天,偶尔写了一个小小的程序,关于字符串问题程序。 比如,我想连续打印用户输入的字符串。 #include&l... ...

Struts Hibernate Spring 经典面试题

Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建Ses... ...

SAP Performance浅析

本文来源于:http://scnblogs.techweb.com.cn/tcsapbw/archives/106... ...

数据库MySQL与xls文件的互导

      最近的一个项目需要将xls表导入到MySQL数据库中和将MySQL数据表导出到... ...