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)
1
>>> switch(0)
0

values = {
    value1: do_something1,
    value2: do_something2,
    ...
    valueN: do_somethingN,
    }

values.get(var, do_default_something)()

  

时间: 2024-10-07 20:56:58

python为什么不需要三目运算符和switch的相关文章

语法技巧(三目运算符、switch...case...)

一.三目运算符 三目运算符的一种简便写法: bool b = str == "abc" ? false : true; 当是自身时,实际上别吝啬那一个括号,有一个括号,实际上更容易一看就看懂: int i = 0; i = (i == 0) ? 1 : 0;  实际上这样的代码更好看: bean.BlogCloud_Url = i > 1 ? BlogCloud_Url : BlogCloud_Url + "&page=" + i; 二.switch.

Python -- if while for 语句

小Q:谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳. 被酒莫惊春水重,赌书消得泼茶香,当时只道是寻常.     ---- 纳兰容若<浣溪沙> ---------------------------------------------------------------------------------------------------- 每个关键词后都用冒号( :)分割模块以缩进空格定义,一般空四格注:python中没有do...while和switch语句:但是有for....else

Python中的and/or

在Python中,可以通过and,or和not进行逻辑运算,下面就来看看and和or的简单介绍. 逻辑与-and 对于包含and运算的表达式,Python解释器将从左到右扫描,返回第一个为假的表达式值,无假值则返回最后一个表达式值. 下面看一个使用and的例子: # if all the expressions are true, return the last expression print {"name": "Will"} and "hello&qu

Python基础教程系列:八、条件与循环

其实作为条件判断语句或者循环语句,我们在前面已经多多少少涉及了一些,现在我们再做一些补充或者把几个要注意的地方说一下.主要有以下常用语句:if.while.for,以及相互搭配使用的else.elif.break.continue和pass. 我们挨个简单说一下,简单的一笔带过就可以了,因为大家都学了C,所以主要说一下与C的不同之处. 1.if与else: if expression:         语句1 语句2 -- 条件语句(expression)不需写在括号中,整个Python语言不使

Python(三)python基本数据类型

数据类型 一.Python支持的数据类型 1.变量 变量是内存中的一块区域 变量的命名:由字母.数字.下划线组成并且开头不能时数字 python中地址变量与c语言刚好相反,一条数据包含多个标签: >>> a=1>>> b=1>>> id(a)34909288>>> id(b)349092882.整型 注:type()可以查看数据类型 >>> num1=123>>> type(num1)<typ

学习Python的体会

说实话因为本人之前学了C语言的,所以再看Python语言的时候就有点不耐烦,Python与C语言很相近. 但坚持看了几天的教程后,发现Python与C语言的运算一样,但有些规则就不一样了.比如Python里面有缩进的规则. 但C语言里面就没有.如果在Python里面没有缩进的话,他就会直接报错. 而且Python里面没有多分支(Switch)语句.如果需要多分支的话就需要(elif)来实现. 并且python里面还有了许多C语言里面没有的运算符. 原文地址:https://www.cnblogs

[gevent源码分析] gevent两架马车-libev和greenlet

本篇将讨论gevent的两架马车-libev和greenlet如何协同工作的. gevent事件驱动底层使用了libev,我们先看看如何单独使用gevent中的事件循环. #coding=utf8 import socket import gevent from gevent.core import loop def f(): s, address = sock.accept() print address s.send("hello world\r\n") loop = loop()

位运算与流程控制语句5

文件命名方法: 驼峰命名 classNum 下划线命名 class_num A 65 Z 90a 97 z 122 baxuexi de zuo cheng bijibu yao wangji mei tian fuxi qianyi tian xue xi de.wen gu er zhi xin bu jiu geng you yi si le ma. 一.位运算 符号 描述 运算规则 & 按位与 屏蔽某些二进制位(置零) | anwei或 两个都为零结果都为0 作用:把某些二进制位 置1

三目运算的使用&amp;bytes类型转str类型

一.三目运算的使用 就像c语言中有三目运算符一样,python中也有三目运算符,废话不多说直接上代码 1 a=3 2 c=4 3 b=a if a>c else c 4 print(b) 意思就和 1 if a>c: 2 b=a 3 else: 4 b=c 是一样的. 二.bytes类型转str类型 在python中视频和音频的传递是二进制的,所以就需要用到str类型和bytes类型之间的转换. 不像在Python2中的两种类型傻傻分不清楚,在python3中两种类型各自独立没有关联,并不能自