浅谈python为什么不需要三目运算符和switch
对于三目运算符(ternary operator),python可以用conditional expressions来替代
如对于x<5?1:0可以用下面的方式来实现
1if x<5else 0
注: conditional expressions是在python 2.5之前引入的,所以以上代码仅适用于2.5以及之后的版本
对于2.5之前的版本,可以用下面这种形式
X<5and1or 0
对于switch,我们完全可以用dictionary来实现,看下面的例子
>>>def switch(choice): return dict(enumerate(range(4)))[choice] >>> switch(1) >>> switch(0) values = { value1: do_something1, value2: do_something2, ... valueN: do_somethingN, } values.get(var, do_default_something)()
以上就是小编为大家带来的浅谈python为什么不需要三目运算符和switch全部内容了,希望大家多多支持我们~
相关推荐
-
深入理解Python中的*重复运算符
在python中有个特殊的符号"*",可以用做数值运算的乘法算子,也是用作对象的重复算子,但在作为重复算子使用时一定要注意 注意的是:*重复出来的各对象具有同一个id,也就是指向在内存中同一块地址,在对各个对象进行操作是一定要注意. 举例来说: >>> alist = [range(3)]*4 >>> alist [[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]] 上面初始化一个二层列表用来模拟矩阵,该矩阵式4X
-
Python的条件语句与运算符优先级详解
Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- else: 执行语句-- 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围. el
-
Python运算符重载详解及实例代码
Python运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同.鉴于它的特殊性,今天就来讨论一下Python运算符重载. Python语言本身提供了很多魔法方法,它的运算符重载就是通过重写这些Python内置魔法方法实现的.这些魔法方法都是以双下划线开头和结尾的,类似于__X__的形式,python通过这种特殊的命名方式来拦截操作符,以实现重载.当Python的内置操作运用于类对象时,Python会去搜索并调用对象中指定的方法完成操作. 类可以
-
深入解析Python中的变量和赋值运算符
Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符. 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 等号(=)用来给变量赋值. 等号(=)运算符左边是一
-
详解Python中的元组与逻辑运算符
Python元组 元组是另一个数据类型,类似于List(列表). 元组用"()"标识.内部元素用逗号隔开.但是元素不能二次赋值,相当于只读列表. #!/usr/bin/python # -*- coding: UTF-8 -*- tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print tuple # 输出完整元组 print tuple[0] # 输出元组的第一个元素 print tupl
-
Python入门学习之字符串与比较运算符
Python字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符. 一般记为 : s="a1a2···an"(n>=0) 它是编程语言中表示文本的数据类型. python的字串列表有2种取值顺序: 从左到右索引默认0开始的,最大范围是字符串长度少1 从右到左索引默认-1开始的,最大范围是字符串开头 如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. 比如:
-
Python中运算符"=="和"is"的详解
前言 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识).python type()(数据类型)和value(值).is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同.下面来看看具体区别在哪. Python中比较两个对象是否相等,一共有两种方法,简单来说,它们的区别如下: is是比较两个引用是否指向了同一个对象(引用比较). ==是比较两个对象是否相等. >>> a = [1, 2, 3] >>&g
-
浅谈python为什么不需要三目运算符和switch
对于三目运算符(ternary operator),python可以用conditional expressions来替代 如对于x<5?1:0可以用下面的方式来实现 1if x<5else 0 注: conditional expressions是在python 2.5之前引入的,所以以上代码仅适用于2.5以及之后的版本 对于2.5之前的版本,可以用下面这种形式 X<5and1or 0 对于switch,我们完全可以用dictionary来实现,看下面的例子 >>>d
-
浅谈python中copy和deepcopy中的区别
在下是个编程爱好者,最近将魔爪伸向了Python编程.....遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy). 首先说一下deepcopy,所谓的深度复制,在这里我理解的是完全复制然后变成一个新的对象,复制的对象和被复制的对象没有任何关系,彼此之间无论怎么改变都相互不影响. 然后说一下copy,在这里我分为两类来说,一种是字典数据类型的copy函数,一种是copy包的copy函数. 一.字典数据类型的copy函数
-
浅谈python中列表、字符串、字典的常用操作
列表操作如此下: a = ["haha","xixi","baba"] 增:a.append[gg] a.insert[1,gg] 在下标为1的地方,新增 gg 删:a.remove(haha) 删除列表中从左往右,第一个匹配到的 haha del a.[0] 删除下标为0 对应的值 a.pop(0) 括号里不写内容,默认删除最后一个,写了,就删除对应下标的内容 改:a.[0] = "gg" 查:a[0] a.index(&q
-
浅谈Python数据类型之间的转换
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 转换为一个
-
浅谈Python 字符串格式化输出(format/printf)
Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下: # 例:字符串格式化 Name = '17jo' print 'www.%s.com'%Name >> www.17jo.com Name = '17jo' Zone = 'com' print 'www.%s.%s'%(Name,Zone) >> www.17jo.com 字符串格式化时百分号后面有不同的格式符号,代表
-
浅谈Python基础之I/O模型
一.I/O模型 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blockin
-
浅谈python for循环的巧妙运用(迭代、列表生成式)
介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化. 迭代(遍历) #!/usr/bin/env python3 #-*- coding:utf-8 -*- vlist=['a','b','c'] vtuple=('a','b','c') vdict={'a': 1, 'b': 2, 'c': 3} vset={'a','b','c'} vstr='abc' for x in vl
-
浅谈Python中函数的参数传递
1.普通的参数传递 >>> def add(a,b): return a+b >>> print add(1,2) 3 >>> print add('abc','123') abc123 2.参数个数可选,参数有默认值的传递 >>> def myjoin(string,sep='_'): return sep.join(string) >>> myjoin('Test') 'T_e_s_t' >>>
-
浅谈Python中用datetime包进行对时间的一些操作
1. 计算给出两个时间之间的时间差 import datetime as dt # current time cur_time = dt.datetime.today() # one day pre_time = dt.date(2016, 5, 20) # eg: 2016.5.20 delta = cur_time - pre_time # if you want to get discrepancy in days print delta.days # if you want to get
-
浅谈python 四种数值类型(int,long,float,complex)
Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: del var1[,var2[,var3[
随机推荐
- 用Java正则去掉字符串中重复出现的字符
- 浅谈Lua的面向对象特性
- 浅谈JSON.stringify()和JOSN.parse()方法的不同
- 用JAVA 设计生成二维码详细教程
- javascript 原型继承介绍
- js 将图片连接转换成base64格式的简单实例
- python基础while循环及if判断的实例讲解
- mysql ON DUPLICATE KEY UPDATE语句示例
- jQuery EasyUI API 中文文档 - ValidateBox验证框
- jQuery+CSS3文字跑马灯特效的简单实现
- 微信小程序实战之自定义抽屉菜单(7)
- Jquery 整理元素选取、常用方法一览表
- 浅谈C语言编程中的布尔bool数据类型
- Servlet与JSP间的两种传值情况
- python使用cookielib库示例分享
- 编译问题
- php中session使用示例
- Gradle编译打包Android apk详细介绍
- 菜鸟学习java设计模式之单例模式
- PHP实现微信支付(jsapi支付)流程步骤详解