草庐IT

04if分支语句

DaGuo'sBlogs 2023-03-28 原文

if条件语句

if语句

  • if条件语法结构:
    if 条件语句:
    满足条件运行的代码1
    满足条件运行的代码2
    ...
  • ps:条件语句(可以是单个数据,即本身就是布尔类型)需返回一个布尔类型,判断是否进入条件分支语句
if True:
    print('条件成⽴执⾏的代码1')
    print('条件成⽴执⾏的代码2')
# 下⽅的代码没有缩进到if语句块,所以和if条件⽆关
print('我是⽆论条件是否成⽴都要执⾏的代码')

# 实例
age = 20
if age > 18:
    print("你已成年!可以进入网吧上网。")

if...else...

  • if...else...语法结构:
    if 条件语句:
    满足条件运行的代码1
    满足条件运行的代码2
    ...
    else:
    不满足条件运行的代码1
    不满足条件运行的代码2
    ...
# 实例
age = 16
if age > 18:
    print("你已成年!可以进入网吧上网。")
else:
    print("你未成年!不能进入网吧。")

if...elif...else...

  • if...elif...else...语法结构:

if 条件语句:
满足条件运行的代码1
满足条件运行的代码2
...
elif 条件语句:
满足条件运行的代码1
满足条件运行的代码2
...
elif 条件语句:
满足条件运行的代码1
满足条件运行的代码2
...
...
else:
不满足条件运行的代码1
不满足条件运行的代码2
...

# 实例
score = int(input("请输入你的成绩:"))

if score >= 90:
    print("优秀!")
elif score >= 60:
    print("及格!")
else:
    print("不及格!")

多重判断

# 中国合法⼯作年龄为18-60岁,即如果年龄⼩于18的情况为童⼯,不合法;
# 如果年龄在18-60岁之间为合法⼯龄;⼤于60岁为法定退休年龄。

age = int(input('请输⼊您的年龄:'))
if age < 18:
    print('童⼯⼀枚')
elif age >= 18 and age <= 60:
# age >= 18 and age <= 60 可以化简为 18 <= age <= 60
    print('合法⼯龄')
elif age > 60:
    print('可以退休')
"""  
最后一个elif可以写成:
else:
    print('可以退休')
"""  
  • 多重判断也可以和else配合使⽤。⼀般else放到整个if语句的最后,表示以上条件都不成⽴的时候执⾏的代码。
  • 如果判断需要多个条件需同时判断时,可以使用 or(或),表示两个条件有一个成立时判断条件成功;使用 and(与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

if嵌套

if 条件语句:
满足条件运行的代码1
满足条件运行的代码2
...
if 条件语句:
满足条件运行的代码1
满足条件运行的代码2
...
...

# 坐公交车,需要花钱,上了车,有座位就坐下,没座位就站着
# 假设⽤ money = 1 表示有钱, money = 0表示没有钱; seat = 1 表示有空座,seat = 0 表示没有空座
money = int(input("上车请投币:"))
if money == 1:
    print('祝你旅途愉快')
    seat = input("是否有空座:")
    if seat == "yes":
        print('有空座,可以坐下')
    else:
        print('没有空座,站等')
else:
    print('没钱请下车')

三目运算符

三⽬运算符也叫三元运算符或三元表达式。

条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式

# 普通写法
age = 16
if age > 18:
    print("成年")
else: 
    print("未成年")

# 三元表达式 
age = 16
print("成年") if age > 18 else print("未成年")

有关04if分支语句的更多相关文章

  1. ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别? - 2

    我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行

  2. ruby - ruby 中有 each_if 吗? - 2

    假设我在Ruby中有这个each循环。@list.each{|i|putsiifi>10breakend}我想循环遍历列表直到满足条件。这让我感到“不像Ruby”,因为我是Ruby的新手,是否有Ruby方法可以做到这一点? 最佳答案 您可以使用Enumerable#detect或Enumerable#take_while,取决于您想要的结果。@list.detect{|i|putsii>10}#Returnsthefirstelementgreaterthan10,ornil.正如其他人所指出的,更好的风格是先进行子选择,然后再对其

  3. ruby - 如何在 Ruby 中向现有方法定义添加语句 - 2

    我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca

  4. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  5. ruby - ruby 乘法语句中星号中断语法前的空格 - 2

    在添加一些空格以使代码更具可读性时(与上面的代码对齐),我遇到了这个:classCdefx42endendm=C.new现在这将给出“错误数量的参数”:m.x*m.x这将给出“语法错误,意外的tSTAR,期待$end”:2/m.x*m.x这里的解析器到底发生了什么?我使用Ruby1.9.2和2.1.5进行了测试。 最佳答案 *用于运算符(42*42)和参数解包(myfun*[42,42])。当你这样做时:m.x*m.x2/m.x*m.xRuby将此解释为参数解包,而不是*运算符(即乘法)。如果您不熟悉它,参数解包(有时也称为“spl

  6. ruby - 有没有办法从 ruby​​ case 语句中访问表达式? - 2

    我想从then子句中访问c​​ase语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案

  7. ruby-on-rails - rails : check if the model was really saved in after_save - 2

    ActiveRecord用于在每次调用保存方法时调用after_save回调,即使模型没有更改并且没有生成插入/更新查询也是如此。这实际上是默认行为。在大多数情况下这没问题。但是一些after_save回调对模型是否实际保存的事情很敏感。有没有办法确定模型是否实际保存在after_save中?我正在运行以下测试代码:classStage 最佳答案 ActiveRecordusetocallafter_savecallbackeachtimesavemethodiscalledevenifthemodelwasnotchangedan

  8. ruby - 你会如何在 Ruby 中表达成语 "with this object, if it exists, do this"? - 2

    在Ruby(尤其是Rails)中,您经常需要检查某物是否存在,然后对其执行操作,例如:if@objects.any?puts"Wehavetheseobjects:"@objects.each{|o|puts"hello:#{o}"end这是最短的,一切都很好,但是如果你有@objects.some_association.something.hit_database.process而不是@objects呢?我将不得不在if表达式中重复两次,如果我不知道实现细节并且方法调用很昂贵怎么办?显而易见的选择是创建一个变量,然后测试它,然后处理它,但是你必须想出一个变量名(呃),它也会在内存中

  9. ruby - 在 Ruby 的 if 语句中检查 bash 命令 - 2

    如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最

  10. ruby - 变量赋值后的 if 语句 - 有多常见? - 2

    我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby

随机推荐