怒学Python——第二篇——类型与运算

Python支持5种数据类型,包括数字(numbers)、字符串(string)、列表(list)、元组(tuple)和字典(dictionary)。作为一门动态类型语言,不用去声明一个标示符的类型,使用的时候是什么类型会自动判定。

对于定义好的变量,若不使用该变量,可以用del删除来释放占有的资源,如

var = 10
del var

Python的数字(numbers):支持int、long、float和complex,比较简单不给出示例。

Python的字符串(string):如前面所说的可以被多种引号定义,支持[p](获得p位置的字符)、[l:r](获得从l开始到r截止的字符串)、*t(获得t个该字符串链接在一起的字符串)以及+s(获得与s链接后的字符串)方法(methods,为什么用方法呢,与ruby有关,所有对象的.methods可以显示所有能执行的操作,所以我也开始把一个对象能够执行的操作叫做方法),如下示例

s = ‘This is a test case.‘
print s[0]             #输出s的第一个字符‘T‘
print s[0:4]           #输出s的第一个到第四个字符组成的字符串‘This‘
print s*2              #输出两个s字符串链接的新字符串
print s + ‘ Good!‘     #输出s与‘ Good!‘链接后的字符串

Python的列表(list):用[]来定义,用起来像C++的容器vector,只不过这个容器可以装不同类型的值,同时可以嵌套定义,一个列表里面包含另一个列表,方法与string的类似,如下给出示例

l = [‘wyp‘, 1, 3.14, [2, ‘cc‘]]
print l                #输出整个l
print l[0]             #输出l的第一个元素‘wyp‘
print l[3][0]          #输出l的第四个元素的第一个元素2
print l[0:3]           #输出l的第一个元素到第三个元素
print l*2              #输出两个l链接在一起的列表
print l+[‘.‘]          #输出l与列表[‘.‘]链接在一起的列表

Python的元组(tuple):用()来定义,方法与列表相似,唯一区别是不能二次赋值,所以不给出示例。

Python的字典(dictionary):用{}来定义,定义方法像json,用起来像C++的容器map,方法在下给出示例

d = {1:‘wyp‘, ‘two‘:‘is‘, 3.0:‘Coder‘}
d[‘four‘] = ‘like‘
d[5] = ‘farmer‘
print d          #输出整个字典d
print d[1]       #输出键为1的值‘wyp‘
print d.keys()   #输出所有的键
print d.values() #输出所有的值

Python的类型转换:目测用得不多,下面给出示例

int(x)         #把x转成int型,直接取整,不管后面的尾数
long(x)        #把x转成long型,直接取整,不管后面的尾数
float(x)       #把x转成float型
complex(x,y)   #创建一个x为实部,y为虚部的复数
chr(x)         #转成对应ascii码x的字符
ord(c)         #转成c对应的ascii码
unichr(x)      #把x转成unicode字符
hex(x)         #把x转成它的十六进制的字符串
oct(x)         #把x转成它的八进制的字符串
str(x)         #把x转换为字符串
eval(str)      #把一个字符串表达式str的值算出来
tuple(s)       #把序列型结构的s转成元组
list(s)        #把序列型结构的s转成列表
dict(s)        #把序列型结构且每个元素都是二元组的s转成字典

-----------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------

Python的运算方法与C++非常相似,均分为算术运算、比较运算、逻辑运算和位运算,在此基础上加入了成员运算和身份运算,下面给出和C++有出入的示例

算术运算:多出来的运算符有**和//,因此多出了**=和//=给出示例

a ** b  #即a^b,a的b次方
a // b  #先a/b然后再直接取整

比较运算:多出来的运算符是"<>",与"!="功能一样,所以就不给出示例

逻辑运算:这里有点不同,逻辑运算全部用英文表示了,就是与(and)、或(or)和非(not),用法一样就不给出示例了

位运算:与C++相同

成员运算:运算符为in和not in,以in为例如果一个元素在序列里就是true,否则false,另外一个就是取反,下面给出示例

t = [1, 2, 3, 4]
1 in t      #返回true
1 not in t  #返回false
0 in t      #返回false
0 not in t  #返回true

身份运算:运算符为is和not is,即判断两个变量是否为同一个存储单元,在这里发现一个python的小细节,它的0~256这些整数全部都是已经存放在内存中的,而其他的都是在定义的时候直接分配新内存,下面给出示例

a = -1
b = -1
a is b           #值为false,这里发现-1不是python预先存放在内存中的
a += 1
b += 1
while (a is b):  #在256之前都为true
    a += 1
    b += 1
    print str(a) + ‘, ‘ + str(b) + ‘\n‘

怒学Python——第二篇——类型与运算

时间: 2024-12-26 17:36:38

怒学Python——第二篇——类型与运算的相关文章

怒学Python——完结篇——I/O

好吧,没想到居然这么快,才两天我就把入门看完了,当然只是入门,以后如果用到,会把那些各个类型的细化都总结一下例如数学函数,或者总结一下一些框架的应用如Scarpy(爬虫框架,听着就很兴奋呢,很多人都是了解有,但是没用过......),笔者写完这段暂时先开心的看电影去,回学校再说. Python的屏幕I/O:如果是交互式编程,直接输入就好,这里的是在脚本式编程才用到,用到的方法是input和raw_input,下面给出例子 #!/usr/bin/python print raw_input() #

菜鸟学python之对象类型及运算

Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型. 等号(=)用来给变量赋值. 1 变量赋值 1.1 单个变量赋值 >>> name="python" >>> print(name) python 1.2 多个变量赋值 >>> name=names="python&

怒学Python——第四篇——函数与模块

Python的函数:其实和C++非常类似,不过由于是弱类型的语言(用起来感觉是......),把那些类型声明都去掉了,传的是值不是引用(至少2.7是),有一点点小区别是前面必须加def来定义(好像宏定义的样子......),下面给出示例 def sum(a, b): #sum为函数名,注意冒号...... c = a + b #这一部分是函数的语句块 return c #到这里函数就结束了,和C++一样 print sum(1, 2) #根据函数名调用函数,输出1+2的值 这里也有lambda函

怒学Python——第三篇——结构控制

众所周知,程序语句运行的结构无非是顺序结构.分支结构和循环结构,Python也是如此,顺序结构过于简单不提,简单记录一下分支和循环与C++的异同点,顺便提一下,对于已经会C++的人来说,学Python应该注意的是语句块通过缩进来控制. 分支结构:都使用if.else,多出了一个elif代替C++的else if,本质相同,就不给出例子 循环结构:和C++对比,没有了do..until语句,有while和for,里面同样使用break来结束循环,使用continue来进入下一个循环,但for出现了

[老老实实学WCF] 第二篇 配置WCF

原文:[老老实实学WCF] 第二篇 配置WCF 老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; name

(转)[老老实实学WCF] 第二篇 配置WCF

第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace Hel

(转)[老老实实学WCF] 第二篇 配置WCF

在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace HelloWCFServi

Flask最强攻略 - 跟DragonFire学Flask - 第二篇 Flask 中的 Render Redirect HttpResponse

1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串 2.Flask中的Redirect 每当访问"/redi"这个地址的时候,视图函数redi会触发redirect("/") 跳转到url地址:  "/" 并会触发"/"对应的视图函数index() 3.Flask 中的 render (render_template) HTML模板渲染是每个Web框架中都必

第二部分 类型和运算

Python程序可以分解成模块.语句.表达式以及对象. 1.程序由模块构成. 2.模块包含语句. 3.语句包含表达式. 4.表达式建立并处理对象. 1.数字类型 注意: Python允许把多个比较连续起来来执行范围测试. >>> X=2 >>> Y=4 >>> Z=6 >>> X<Y<Z True 十六进制以0x或0X开头,后面接十六进制的数字0~9和A~F. 八进制以数字0o或0O开头(0和小写或大写字母"o”