Python 教程之运算符(3)—— G-Fact 19(布尔逻辑和位非运算符)

简介: Python 教程之运算符(3)—— G-Fact 19(布尔逻辑和位非运算符)

包括 C、C++、Java 和 Python 在内的大多数语言都提供布尔类型,可以设置为FalseTrue。考虑以下在布尔值上

使用逻辑非(或!)运算符的程序。

一个在布尔值上使用逻辑非或!的 C++ 程序

#include <iostream>
using namespace std;
int main()
{
  // 我们正在制作 false 和 true 的变量存储 bool 表达式,它也可以写成 (1) 代表“真”,(0) 代表“假”
  bool is_it_true = false;
  bool is_it_false = true;
  // 下面的代码首先打印 false (0),然后打印 true (1),因为我们在第二种情况下使用了 'not' (!) 运算符
  cout << is_it_true << endl;
  cout << !is_it_true << endl;
  // 下面的代码首先打印 true (1),然后打印 false (0),因为我们在第二种情况下使用了 'not' (!) 运算符
  cout << is_it_false << endl;
  cout << !is_it_false << endl;
  return 0;
}

一个在布尔值上使用逻辑非或!的 Python 程序

a = not True
b = not False
print a
print b
# 输出: False
# True

一个在布尔值上使用逻辑非或! 的 C# 程序

using System;
class GFG
{
  public static void Main ()
  {
    bool a = true, b = false;
    Console.WriteLine(!a);
    Console.WriteLine(!b);
  }
}
// 输出: False
// True

一个在布尔值上使用逻辑非或!的 javascript 程序

<script>  
    var a = true, b = false;
    document.write(!a+"<br/>");
    document.write(!b);
// 输出: False
// True
</script>

输出

0
1
1
0

上述程序的输出符合预期,但如果我们之前没有使用过按位非(或~) 运算符,则程序后面的输出可能与预期不符。

一个在布尔值上使用按位非或 ~ 的 Python 程序

a = True
b = False
print ~a
print ~b

在布尔值上使用按位非或 ~ 的 C/C++ 程序

#include <bits/stdc++.h>
using namespace std;
int main()
{
    bool a = true, b = false;
    cout << ~a << endl << ~b;
    return 0;
}

一个在布尔值上使用 Bitwise Not 或 ~ 的 Java 程序

import java.io.*;
class GFG
{
  public static void main (String[] args)
  {
    boolean a = true, b = false;
    System.out.println(~a);
    System.out.println(~b);
  }
}

输出:

6: error: bad operand type boolean for unary operator '~'
        System.out.println(~a);
                           ^
7: error: bad operand type boolean for unary operator '~'
        System.out.println(~b);
                           ^
2 errors

结论: 

“逻辑非或!” 用于布尔值,“按位非或~”用于整数。当应用整数运算符时,C/C++ 和 python 等语言会自动将布尔值提升为整数类型,但是 Java 并没有这样做。


目录
相关文章
|
5天前
|
测试技术 PHP 索引
CANopen for Python 使用教程(二)
CANopen for Python 使用教程(二)
20 5
|
5天前
|
XML 编解码 数据可视化
MoJoCo 入门教程(六)Python LQR 教程
MoJoCo 入门教程(六)Python LQR 教程
7 2
MoJoCo 入门教程(六)Python LQR 教程
|
2天前
|
XML 程序员 数据格式
豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
Python 是活力四射的语言,是不断发展中的语言。就连使用 Python 多年的行者也不敢说对 Python 的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。 今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解书籍,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书,笔者试图将优化后的学习体验,通过故事的方式传达给读者。对于零基础的小白来说更建议入门后再来品读。
|
4天前
|
Python
二:《Python基础语法汇总》— 输入与输出&运算符
【8月更文挑战第16天】本篇文章详细讲述了关于输入输出函数的语法及占位符;转义字符和运算符的使用,并附上详细的代码示例
7 2
|
5天前
|
机器学习/深度学习 数据可视化 API
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
15 3
|
4天前
|
Linux iOS开发 MacOS
|
7天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
|
5天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
|
3天前
|
数据采集 存储 人工智能
掌握Python编程:从基础到进阶的实用指南
【8月更文挑战第17天】 本文旨在通过浅显易懂的语言和实际案例,为初学者和有一定基础的开发者提供一条清晰的Python学习路径。我们将从Python的基本语法入手,逐步深入到面向对象编程、数据科学应用及网络爬虫开发等高级主题。每个部分都配备了代码示例和实操建议,确保读者能够将理论知识转化为实际能力。无论你是编程新手,还是希望提升Python技能的开发者,这篇文章都将为你打开一扇通往高效编程世界的大门。
7 2