首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?

偶然看到了 stackoverflow 上的一个问题,还挺有启发,故分享一下。 题目大意是:有从 A 到 F 的 5 个等级,现要判断某个数值(从 0 到 1 之间)所属的等级。...若使用 if-elif 语句,可能写成这样: if scr >= 0.9: print('A') elif scr >= 0.8: print('B') elif scr >= 0.7:...有什么更好的写法,来实现这个目的呢? 该问题下的回答挺多的,实现思路五花八门。我挑几个可读性比较好: 方法一:使用bisect模块(数字可调) ? 方法二:使用 zip() 与 next() ?...方法三:使用字典(仅适用于 Python 3.6 以上的有序字典) ? 还有其它几个回答,虽然都能实现数字分级的目的,但是其可读性要差很多,因为它们要么需要你作计算和推理,要么就是引入了额外的变量。...不管怎么说,反复使用 if-elif 语句的判断方式是挺笨拙的,必须改进。文中列出的都是目前比较受认可的回答。 如果有面试官把它作为面试题,我觉得会挺有意思:难度不大,有发挥空间。

48930

不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?

偶然看到了 stackoverflow 上的一个问题,还挺有启发,故分享一下。 题目大意是:有从 A 到 F 的 5 个等级,现要判断某个数值(从 0 到 1 之间)所属的等级。...若使用 if-elif 语句,可能写成这样: if scr >= 0.9: print('A') elif scr >= 0.8: print('B') elif scr >= 0.7:...有什么更好的写法,来实现这个目的呢? 该问题下的回答挺多的,实现思路五花八门。我挑几个可读性比较好: 方法一:使用bisect模块(数字可调) ? 方法二:使用 zip() 与 next() ?...方法三:使用字典(仅适用于 Python 3.6 以上的有序字典) ? 还有其它几个回答,虽然都能实现数字分级的目的,但是其可读性要差很多,因为它们要么需要你作计算和推理,要么就是引入了额外的变量。...不管怎么说,反复使用 if-elif 语句的判断方式是挺笨拙的,必须改进。文中列出的都是目前比较受认可的回答。

93820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用AngularJS和PHP为任何位置生成短而独特的数字地址

    在本教程中,您将开发一个Web应用程序,该应用程序使用Google Maps API为您选择的任何地址生成一个简短的数字地址。...这是必要的,因为您将在本教程中开发的应用程序使用AngularJS和PHP,并且应用程序生成的数字地址将存储在MySQL数据库中。 在您的服务器上安装Git。...我们还将添加几个事件监听器,使应用程序更具交互性。具体来说,我们将使用这些侦听器更改应用程序映射中显示的位置,放置标记,并在用户在表单中输入信息时在该位置周围绘制一个矩形。...在这个路易斯安那州的例子中,你会进入US-LA。 要了解有关Mapcode如何使用此标准的更多信息,请查看“ 地区和标准代码”参考页。...结论 在本教程中,您使用Google Maps API固定位置并获取其经度和纬度信息。此信息用于使用Mapcode API生成唯一且短的数字地址。地图代码有许多实际用例,从紧急服务到考古调查。

    13.2K20

    【Python】Python中的数据类型

    C/C++中的布尔类型的值有两个——真(true)和假(false)。布尔类型的值常用于判断语句中,如下所示: 在条件语句中,当判断语句的结果为真,则执行对应的分支中的语句。...从上例可以看到,因为a的布尔值为真,所以执行的是if语句中的内容,而b的值为假,所以执行的是else语句中的内容。 在Python中布尔类型的值同样也是两个——真(True)和假(False)。...Python中布尔型被归为了整型的一个分支,但是其使用方式与C/C++中一致,都是用于判断语句中,如下所示: 对于布尔类型而言,不管是C/C++还是Python,布尔值的判断都满足: 0为假,值为0;...接下来我们就需要继续学习Python中的数据类型之间是如何相互转换的。 二、数据类型的转换 在C语言中我们在介绍操作符时有提到过一个概念——隐式类型转换和显示类型转换。...Python中用于进行类型转换的函数如下所示: 对于不同的函数如何进行使用,大家可以参考Python3 数据类型转换,里面有详细的介绍。

    8010

    【C语言】循环语句详解

    但是while语句却在一直死循环地打印“hello world”,因为while的语法也是先判断括号中得表达式是否为真,上图就是判断n是否为1,如果判断为真,那么进入while执行语句,但是执行完要再次判断括号中的表达式结果是否为真...总结:⾸先上来就是执⾏判断表达式,表达式的值为0,也就是假,循环直接结束;表达式的值不为0,即结果为真,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次循环。...=0,即条件为真,则执⾏循环语句,循环语句执⾏完后,再去执⾏表达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继续。...for循环练习 计算1~100之间3的倍数的数字之和 答案在文末 三、do······while循环    相较于while循环和for循环,do······while循环的使用是最少的,while 和...假设要判断i是否为素数,需要拿2 ~ i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决,就产生了嵌套。

    10910

    【C语言】分支语句详解

    一、if语句 if语句使用格式如下: if (表达式) 语句     表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏,C语言中0为假,非0为真     接下来我们举个例子就懂了...从该例子可以看出,一些简单的条件判断就可以使用条件操作符,会比if语句简单一些 条件操作符练习 使⽤条件表达式实现找两个数中较⼤值 答案在本文最后 四、逻辑操作符 逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式...逻辑或操作符||:它的含义是或者,比如表达式1 || 表达式2,只需要其中一个表达式满足条件,即其中一个表达式为真,那么结果为真,比如同样表达3月到5月之间是春天,使用逻辑或表达如下: 解析:...,我们要注意的点有: (1)case 和后边的数字之间必须有空格 (2)每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。...输⼊1~5,输出的是“⼯作⽇” 输⼊6~7,输出“休息⽇” 如果输入其他数字,那么打印输入错误 如何简便地将要求完成 答案在本文末尾 六、答案 if语句练习答案: 条件操作符练习答案:

    7110

    C语言——C分支和循环

    一、 if语句(分支) 1.1语法形式 if(判断表达式) 语句 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执行; 在C语言中,0为假,非0表示真,也就是表达式的结果如果是...2、for 与 while 进行对比 练习:计算0 ~ 100 之间的数字为3的倍数之和 int main() { int i = 0; int sum = 0; for (i = 1; i 语句,然后再执⾏ while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。...假设要判断 i 是否为素数,需要拿2 ~ (i-1)之间的数字去试除 i,需要产⽣ 2 ~ (i-1)之间的数字,也可以使用循环解决; 3....haha 就可以使用 goto 语句: 只就是 goto 语句的使用,如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执行逻辑,所以建议是能不⽤尽量不去使用;但是 goto 语句也不是⼀⽆是处

    13110

    C语言入门基础大全,自学C语言必备知识!

    4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。...如:++i,--i (在使用i之前,先使i的值加1、减1)。i++,i-- (在使用i之后,使i的值加1、减1)。...两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。...10 关系运算符和关系表达式 10.1 C语言中的逻辑值 — C语言中的逻辑值只有两个:真(true)和假(flase)。用非零代表真,用零代表假。...(2)x||y||z ,只要x的值为真(非零),就不必判别y和z的值 ,整个表达式的值为1,只有x的值为假,才需要判别y的值,只有x和y的值同时为假才需要判别z的值,口诀:“一真必真”。

    1.7K2118

    C++教程系列之-01-C++概述与NOIP案例

    C++教程 2.1 C++官网介绍 2.2 编译器 2.3 控制台程序 2.4 C++的程序结构 3. NOIP真题案例 1....对计算机的一条指令可能是这样的: 00000 10011110 允许用户输入两个数字、将两个数字相加并显示总数的特定计算机的机器语言程序可以包含以下机器代码指令: 可以想象,直接用机器语言编写计算机程序...为了使编程更容易,开发了高级语言。高级程序还使程序员更容易检查和理解彼此的程序。...语句的执行顺序与它们在函数体中的出现顺序相同。 如果您以前看过c++代码,您可能见过使用cout而不是std::cout。...输入格式:输入数据仅一行,包含两个正整数 a 和 b ,它们之间用一个空格隔开,表示小凯手中金币的面值。

    54810

    有人@我,你有一份C语言基础大全手册要领取,快来拿!

    4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。...如:++i,--i (在使用i之前,先使i的值加1、减1)。i++,i-- (在使用i之后,使i的值加1、减1)。...两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。...关系运算符和关系表达式 一、C语言中的逻辑值 C语言中的逻辑值只有两个:真(true)和假(flase)。用非零代表真,用零代表假。...逻辑运算举例如下: (1)a&&b: 当&&两边都为“真”时,表达式a&&b的值才是真。 值得注意的是:在数学中,关系式0 (2)a||b: 当||两边有一个为“真”时,表达式a||b的值就是真。

    94220

    SQL注入与XSS漏洞

    ,这类表单特别容 易受到SQL注入式攻击 当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。...而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。...ascll 码拆半法,先要知道指定列名,例如 user 里的内容的长度 “and (select len(user) from admin)=2” 就是查询长度为不为 2 位,返回错误的增加或减少数字,...ASCLL字符是不是大于100正确的话,那么表示USER第一个字符的ASCLL码大于100,那么就猜>120,返回错误就是介于100--120之间,然后再一步一步的缩少,最终得到正确字符XXX 。...,那么查询结果就是 假 or 真 and 假 or 真,先算 and 再算 or,最终结果为真,这样就可以进到后台了,这种漏洞存在必须要有2个条件: 第一个:在后台验证代码上,账号密码的查询

    2.3K50

    awk高级玩法

    比较后返回l 为真,0 为假。比较不同长度的字符串,且其中一个字符串为另一个的初始子字符串时,较短的会定义为小于较长的那个,因此,“A ”的值为真。 awk 并无特殊的字符串接续运算符。...有两个运算符:~( 匹配) 与!~( 不匹配) 让awk 更容易使用正则表达式:”ABC ”~ ”^[A-Z]+$ “,结果为真。 4....因此,下面这些程序所做的全是相同的操作: 1 模式为真,默认操作为打印 NR>0 {print} 有记录时打印( 恒为真) 1 {print} 模式为真。...按照传统的文本处理应用来说,sprintf 与printf 18. 数值函数 函数 说明 atan2(y, x) y 返回y/x 的反正切,值介于-pai 与+pai 之间。...cos(x) 返回x 的余弦值( 以弧度(radians) 计算) ,该值介于-1 与+1 之间 exp(x) 返回x 的指数,ex, int(x) 返回x 的整数部分

    1.4K20

    c 语言条件运算符,C 语言条件运算符详细讲解

    C 语言条件运算符详细讲解 如果希望获得两个数中最大的一个,可以使用 if 语句,例如: if(a>b){ max = a; }else{ max = b; } 不过,C语言提供了一种更加简单的方法...条件表达式通常用于赋值语句之中。 上面的 if else 语句等价于: max = (a>b) ? a : b; 该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。...用户的输入 var ye 计算下面表达式的值: [”] == false 首先,两个操作数分别是对象类型.布尔类型.根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为...,q就假命题,那么”p且q”为假,”p或q”为真,”非q”为真....,vector vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout< 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作

    3.1K30

    笨办法学 Java(二)

    每次调用这个函数,它都会产生一个新的随机double,范围在[0,1)之间(也就是说,它可能正好是0,但永远不会正好是1,而且很可能是介于两者之间的某个值)。...5 减 1 是 4,然后加 1 来解决减法给出的两个数字之间的距离,而不是沿途停止点的计数。...练习 26:使用 while 循环重复自己 这是我最喜欢的练习之一,因为你将学会如何使代码块重复。如果你能做到这一点,你就能写出各种有趣的东西。...当条件为真时,while循环和if语句都将执行其主体中的所有代码一次。 唯一的区别是,if语句为真时将执行大括号中的所有代码一次。...学习方法 不要使用输入保护循环,使用if语句和Math.abs()来处理负数的平方根。当数字为负时,取正数的平方根,并在答案旁边打印一个小的"i"。

    17310

    基础篇:数据库 SQL 入门教程

    如果是数值,请不要使用引号。 AND & OR – 运算符 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。...* FROM Persons WHERE LastName IN ('Adams','Carter'); ⛵️ BETWEEN – 选取区间数据 操作符 BETWEEN … AND 会选取介于两个值之间的数据范围...某些数据库会列出介于 “Adams” 和 “Carter” 之间的人,但不包括 “Adams” 和 “Carter” ;某些数据库会列出介于 “Adams” 和 “Carter” 之间并包括 “Adams...所以,请检查你的数据库是如何处理 BETWEEN…AND 操作符的! AS – 别名 通过使用 SQL,可以为列名称和表名称指定别名(Alias),别名使查询程序更易阅读和书写。...JOIN – 多表关联 JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

    8.9K10

    C++基础快速入门

    + 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。...3.4 逻辑运算符 作用: 用于根据表达式的值返回真值或假值 逻辑运算符有以下符号: 运算符 术语 示例 结果 ! 非 !a 如果a为假,则!a为真; 如果a为真,则!a为假。...&& 与 a && b 如果a和b都为真,则结果为真,否则为假。 || 或 a || b 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。...,其余为真 4 程序流程结构 C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构 顺序结构:程序按顺序执行,不发生跳转 选择结构:依据条件是否满足,有选择的执行相应功能 循环结构:...,程序必须提供跳出循环的出口,否则出现死循环 while循环练习案例:猜数字 案例描述: 系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,

    19510

    ❤️ 爆肝3天!两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

    其余 4 列的数据类型是 varchar,最大长度为 255 个字符。 空的 “Persons” 表类似这样: 可使用 INSERT INTO 语句向空表写入数据。 ????...* FROM Persons WHERE LastName IN ('Adams','Carter'); ⛵️ BETWEEN – 选取区间数据 操作符 BETWEEN … AND 会选取介于两个值之间的数据范围...某些数据库会列出介于 “Adams” 和 “Carter” 之间的人,但不包括 “Adams” 和 “Carter” ;某些数据库会列出介于 “Adams” 和 “Carter” 之间并包括 “Adams...所以,请检查你的数据库是如何处理 BETWEEN…AND 操作符的! ???? AS – 别名 通过使用 SQL,可以为列名称和表名称指定别名(Alias),别名使查询程序更易阅读和书写。...JOIN – 多表关联 JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

    8.4K11

    C++基础入门_C语言入门基础

    + 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。...3.4 逻辑运算符 作用:用于根据表达式的值返回真值或假值 逻辑运算符有以下符号: 运算符 术语 示例 结果 ! 非 !a 如果a为假,则!a为真; 如果a为真,则!a为假。...&& 与 a && b 如果a和b都为真,则结果为真,否则为假。 || 或 a || b 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。...4.2.1 while循环语句 **作用:**满足循环条件,执行循环语句 语法:while(循环条件){ 循环语句 } 解释:只要循环条件的结果为真,就执行循环语句 示例: int main() {...,程序必须提供跳出循环的出口,否则出现死循环 while循环练习案例:猜数字 案例描述:系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏

    5.7K20

    C语言分支与循环基础知识详解

    1. if语句 基本语句 格式如下: if ( 表达式 ) { 语句体 } 表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。...值得注意的是,‘==’和‘=’是两个完全不同的符号,前者为关系表达式,后者为赋值语句,务必小心他们的混淆。 如果在if的表达式中错误的将将前者写作了后者,可能会导致死循环等严重的问题。...flag 就是真 所以上面的代码的意思就是 flag 为假,执行 if 语句中的代码。 逻辑与运算符-&& 即当&&操作符两边都为真时才为真,否则为假。...假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤ 循环解决。 3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。...//判断i是否为素数 //循环产⽣2~i-1之间的数字 int j = 0; int flag = 1;//假设i是素数 for(j=2; j<i; j++) {

    9910
    领券