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# 程序

c#

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

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

<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++ 和  等语言会自动将布尔值提升为整数类型,但是 Java 并没有这样做。

目录
相关文章
|
5月前
|
JSON 数据格式 开发者
Python 3.10 结构模式匹配:简化条件逻辑的利器
Python 3.10 结构模式匹配:简化条件逻辑的利器
309 91
|
3月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
265 3
|
4月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
799 19
|
3月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
156 1
|
4月前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
|
4月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
存储 安全 API
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
442 0
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
1029 13
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
283 9
|
数据可视化 API 数据处理
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
1162 5

推荐镜像

更多