Python赋值语句中的逻辑变量

在Python赋值时可以使用or代替if…else…达到简化代码的作用

def assign_with_or(a=None, b=None):
    res = a or b
    print (res)
    
    
if __name__ == '__main__':
    assign_with_or(a='a') 
    assign_with_or(a='a', b='b')
    assign_with_or(b='b')

其中assign_with_or()等价于如下函数

def assign_with_or(a=None, b=None):
    if a:
        res = a
    else:
        res = b
    print (res)
    
    
if __name__ == '__main__':
    assign_with_or(a='a')
    assign_with_or(a='a', b='b')
    assign_with_or(b='b')

两个函数输出结果一致

root@root:~/Desktop$ python3 test.py
a
a
b

进一步,and也可以用在赋值语句中

def assign_with_log_opr(a=None, b=None, c=None):
    res = a and b or c
    print (res)
     
     
if __name__ == '__main__':
    assign_with_log_opr(a='a', b='b', c='c')
    assign_with_log_opr(b='b', c='c')
    assign_with_log_opr(a='a', c='c')
    assign_with_log_opr(a='a')

上述‘assign_with log_opr()’输出结果为

b
c
c
None

等价于

def func(a=None, b=None, c=None):
    if a and b:
        res = b
   else:
        res = c
   print (res)

在Django中也用到这种语法,Django初始化项目时调用的模块’Django/core/management/__init__.py’:

class ManagementUtility:
    """
    Encapsulate the logic of the django-admin and manage.py utilities.
    """
    def __init__(self, argv=None):  
        self.argv = argv or sys.argv[:] 
        self.prog_name = os.path.basename(self.argv[0])
       ...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python if语句的条件测试是通过一个值为True或False的表达式来确定是否执行相应的代码。条件测试可以使用比较运算符来比较字符串的相等或不相等关系。比较字符串相等关系可以使用"=="运算符,例如"if x == 'hello':"表示如果变量x的值等于字符串'hello',则执行相应的代码。如果不相等可以使用"!="运算符,例如"if x != 'world':"表示如果变量x的值不等于字符串'world',则执行相应的代码。此外,Python还提供了其他的比较运算符,如">"、"<"、">="、"<="等,用于比较字符串的大小关系。通过合理地运用这些比较运算符,我们可以根据不同的条件来控制程序的执行流程,实现不同的逻辑控制。 例如,我们可以使用if-else语句来判断一个字符串是否等于指定的值,并分别执行不同的代码块。比如: ``` x = input("请输入一个字符串:") if x == 'hello': print("你输入的是hello") else: print("你输入的不是hello") ``` 在上述代码,首先通过input函数获取用户输入的字符串,并将其赋值变量x。然后使用if语句进行条件判断,如果x的值等于'hello',则执行if下面的代码块,输出"你输入的是hello";否则执行else下面的代码块,输出"你输入的不是hello"。这样,根据用户输入的不同,程序会有不同的输出结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python if语句的使用;Python if逻辑控制语句也是是简单的学习程序了 演示python3的使用,python2](https://download.csdn.net/download/li171049/87894959)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python if 语句及其使用](https://blog.csdn.net/weixin_42570192/article/details/123611484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值