转: Python 运算符与用法
3 + 5得到8。'a' + 'b'得到'ab'。
(注意:6+'a'这样是错误的,但在PHP里这样是可以运行的)
-减得到负数或是一个数减去另一个数
2 * 3得到6。'la' * 3得到'lalala'(但PHP里这样运算返值为0)。
在PHP中要实现相同功能,有函数:
str_repeat(),str_pad()
**幂
返回x的y次幂
3 ** 4得到81(即3 * 3 * 3 * 3)
8%3得到2。-25.5%2.25得到1.5
(在PHP中:-8%3 = -2 与 8%-3 = 2 )
<<左移
x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or布尔“或”
x = True; y = False; x or y返回True。短路计算在这里也适用。
fc_lamp提醒你:1 Python的逻辑运算符里没有“!(非),&&(与),||(或)” 这三个表示符号(完全是英文上的表示)。
即 not,and,or
2 Python中的变量赋值操作不是一种存储操作。比如:a=5,这里仅是将创建并包含值5的新对象,用名称a来引用了而已。
再看关于Bool值
#coding:utf-8
#True、任意非零数字、非空字符串、列表、元组或者字典都返回True
#False、零、None、和空的列表、元组和字典都返回False
#另外 is 运算符用于比较两个对象身份,type()函数则返回一个对象的类型,如list,dict,file,int
#1和0的问题:我们知道python的数字类型有:bool,int,long,float,complex(复数)
#而bool中的true和false就是分别映射了1和0,所以作值判断时:xx=1 if xx==True 是成立的。
s = 'asdfs'
if s:
print(s)
else:
print('not true')
#输出 asdfs s = {}
if s:
print(s)
else:
print('not true')
#输出not true s = 0
if s==False:
print(s)
else:
print('not true')
#输出0 s =1
if s==True:
print(s)
else:
print('not true')
#输出 1 if type(s) is bool: #严格意义上 数字类型中的bool型
print(s)
else:
print('not true')
#输出not true
以上可看出
1 在python中空的列表 ([]),tuple(()),字典({}),字符串(''),零(0),还有None对象,在逻辑判断中都为假,其他的情况都为真。()
对比PHP
<?php
class test
{
}
$a = new test();
if($a){
echo 'new test() bool true<br/>';
}
$a = array();
if($a){
echo 'array() bool true<br/>';
}
$a = null;
if($a){
echo 'null bool true<br/>';
}
$a=false;
if($a){
echo 'false bool true<br/>';
}
$a=0;
if($a){
echo '0 bool true<br/>';
}
$a='';
if($a)
{
echo "'' bool true<br/>";
}
$a='0';
if($a){
echo "'0' bool true<br/>";
}
$a=0.0;
if($a){
echo "0.0 bool true<br/>";
} $a='0.0';
if($a){
echo "'0.0' bool true<br/>";
}
结果:
new test() bool true
'0.0' bool true
从上可看出在PHP中:
布尔值 FALSE 本身、
整型值 0(零)、
浮点型值 0.0(零)、
空字符串,以及字符串 "0"、
不包括任何元素的数组、
不包括任何成员变量的对象(仅 PHP 4.0 适用,从例子中可看出空对象不再是FALSE)、
特殊类型 NULL(包括尚未赋值的变量)、
从没有任何标记(tags)的 XML 文档生成的 SimpleXML 对象
值都是 FALSE
2 is 运算符是比较对象地址,也就是说是否是同一对象。
3 == 运算符比较两对象是否相等,但它们不一定引用的是同一对象。
另外单独说说python的字符串运算符:
了解PHP的人知道,在PHP里字符串的连接运算符为(“.”),它返回其左右参数连接后的字符串。如:
<?php $a = 55; $str = 'abc'; $str .= 'def'; $str .= $a; //在运算时,PHP自动把$a的类型转为了字符串类型 $str = $str.'s99s'; //在PHP里变量与字符串之间连接是通过点运算来实现连接的 echo $str; 但在python里,可能大家已从运算表里找到了,即 (“+”),但是与PHP不同的是两个对象相加,两个对象必须是同类型的,不同类型的两个对象是不能相加的。
要实现像上面PHP代码里的运算,必须保证两对象类型一致。如:
print('=============python字符串运算符================') numa = 3 strs = 'This first' strs1 = strs,numa #输出值为:('This first',3) print(strs1) ###################### #类型对象不匹配,无法正常运算 #strs2 = strs+numa #print(strs2) ###################### strs3 = strs+str(numa) #改变numa的类型,使其成为字符串,或者 strs += str(numa) print(strs3) #输出为This first3 #另外:如果strs = '6',则可进行:strs3 = int(strs)+numa这样的运算,输出为9
>>> l =[2,4,6,8]
>>> newl =[i+1for i in l]
>>> newl
[3,5,7,9]
#在字典(dict)里使用'列表解析'
>>> d = {'a':1,'b':3,'f':6}
>>> newd = dict([(k,v+2)for k,v in d.iteritems()])#先转成元组,再dict成字典
>>> newd
{'a':3,'b':5,'f':8}
#d.items()与d.iteritems()
>>>for i in d.items():
print i
('a',1)
('b',3)
('f',6)
>>>for k,v in d.iteritems():
print k,v
a 1
b 3
f 6
python里的"三元"运算符
python里没有类似"xx ? xx : xx"这样的三元运算符,可用:
charset = 'utf8' if 'charset' not in param else param['charset'];
这种方式来代替。
参看:http://chroya.iteye.com/blog/726479
Python的常见的类型转换
函数 描述
int(x [,base ]) #将x转换为一个整数
long(x [,base ]) #将x转换为一个长整数
float(x ) #将x转换到一个浮点数
complex(real [,imag ]) #创建一个复数
str(x ) #将对象 x 转换为字符串
repr(x ) #将对象 x 转换为表达式字符串
eval(str ) #用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) #将序列 s 转换为一个元组
list(s ) #将序列 s 转换为一个列表
chr(x ) #将一个整数转换为一个字符
unichr(x ) #将一个整数转换为Unicode字符
ord(x ) #将一个字符转换为它的整数值
hex(x ) #将一个整数转换为一个十六进制字符串
oct(x ) #将一个整数转换为一个八进制字符串
编码问题
需要注意的是,中文在python里的存储方式是以编码后的形态存放的,
所以要正常呈现中文应格式化形式输出,如:
print('错误',) 输出:'\xb4\xed\xce\xf3'
与
print('错误') 输出:错误
多一个“,”号行为就不一样了。
上面一个是元组输出,而后面一个是以字符串形式输出。
更多编码问题参看: 1 《 python 中文编码问题》 2 《Python MySQL 数据库乱码解决方法》
另注:
1 dir()函数 :
你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。
2 del
用于删除一个变量,这类似于PHP里的unset()
3 python的Bool值:True ,False
isinstance('test',str) 类型检测函数
转: Python 运算符与用法的更多相关文章
- 21.Python算术运算符及用法详解
算术运算符是处理四则运算的符号,在数字的处理中应用得最多.Python 支持所有的基本算术运算符,如表 1 所示. 表 1 Python常用算术运算符 运算符 说明 实例 结果 + 加 12.45 + ...
- 浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- python运算符重载
python运算符重载就是在解释器使用对象内置操作前,拦截该操作,使用自己写的重载方法. 重载方法:__init__为构造函数,__sub__为减法表达式 class Number: def __in ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- Python运算符,python入门到精通[五]
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...
- JS逗号运算符的用法详解
逗号运算符的用法详解 注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScri ...
- Python运算符与表达式
Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符.成员运算符和身份运算符. 表达式是将不同类型的数据(常亮.变量.函数)用运算符按照一定得规则连接起来的式子. 算术运算符 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- 【Python】关于Python有意思的用法
开一篇文章,记录关于Python有意思的用法,不断更新 1.Python树的遍历 def sum(t): tmp=0 for k in t: if not isinstance(k,list): tm ...
随机推荐
- php-redis扩展模块安装记录
redis的安装可以参考:centos下部署redis服务环境的操作记录 下面记录下php-redis扩展模块的安装过程:php的安装目录是/Data/app/php5.6.26 下载phpredis ...
- javascript 数组 排除null, undefined, 和不存在的元素
The most common way to loop through the elements of an array is with a for loop: var o = [1,2,3,4,5] ...
- Git常用命令清单
创建 在指定目录创建工作仓库,未指定时在当前目录 git init [dir] 创建不包含工作区的仓库 git init --bare 克隆远程仓库到本地 git clone url 配置 git c ...
- Machine Learning—Mixtures of Gaussians and the EM algorithm
印象笔记同步分享:Machine Learning-Mixtures of Gaussians and the EM algorithm
- IO-序列化 Serializable Parcelable Object
简介 1.什么是序列化和反序列化 对象的寿命通常随着生成该对象的程序的终止而终止,有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象的这种,能记录自己的状态以便将来再生的能力,叫作 ...
- 最新 xode shareSDK使用分享
shareSDK使用分享 什么是shareSDK ShareSDK实现第三方登录.分享.关注等功能. 为什么使用 快速,方便 如何使用 (1)官方下载ShareSDK 参照 ...
- java学习——集合框架(Collection,List,Set)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储. 集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存储基本数据类型值. ...
- delphi列表视图组件(TListView)使用方法|实例
TListView 组件以多种形式显示列表的项目,如详细资料.小图标.大图标等形式表示列表中的项目. 列表视图与用TListBox 组件实现的列表框非常相似.不同的是,列表视图可以让用户选择不同 ...
- 请阐述调用Activity有哪几种方法,并写出相关的Java代码
请阐述调用Activity有哪几种方法,并写出相关的Java代码. 答案:可以采用两种方式调用Activity:显示调用和隐式调用.显示调用直接指定了Activity,代码如下: Intent int ...
- mongo学习整理
mongo做为NOSQL家族中一员,被广泛使用以及应用到生产环境中,有其出色的性能.关系型数据库(RDBMS )在互联网中依然是不可替代的一部分,mongo基于NOSQL的特性,在程序中RDBMS不适 ...