精华内容
下载资源
问答
  • 1、常见的比较判断操作符,这个类似于数学运算的,所以比较好理解 等于:== 不等于:!= 小于:< 小于等于:<= 大于:> 大于等于:>= 属于(被包含):in 通过比较判断返回的bool值来判断执行哪个代码 ...

    1、常见的比较判断操作符,这个类似于数学运算的,所以比较好理解

    等于:==
    不等于:!=
    小于:<
    小于等于:<=
    大于:>
    大于等于:>=
    属于(被包含):in
    通过比较判断返回的bool值来判断执行哪个代码

    例子1:如果身高等于170的话,就输出我170高,注意,python中判断等于的时候用两个=号

    high = 170
    if high==170:
        print('我170高')
    else:
        print('我不是170高')
    #输出结果是我170高

    例子2:创建一个lis,判断元素1是不是存在lis中,如果存在就输出我在lis中

    lis = [1,2,3,4]
    if 1 in lis:
        print('我在lis中')
    else:
        print('我不在lis中')
    #输出结果是我在lis中

    2、在python中以下特殊情况属于False

    None
    0
    0.0
    空字符串:''
    空列表:[]
    空元组:()
    空字典:{}
    空集合:set()

    例子:a为空列表,所以输出我是假

    a = []
    if a:
        print('我是真')
    else:
        print('我是假')
    #输出结果是我是假

    3、if else 可以用elif做多层语句判断,身高是170,所以输出结果是偏矮

    high = 170
    if high>180:
        print('很高')
    elif 170<high<=180:
        print('正常身高')
    elif 160<high<=170:
        print('偏矮')
    else:
        print('不说了')
    #输出结果是偏矮

    好了,这节课就到这里,有问题欢迎私聊我

    展开全文
  • Python进阶之路 in和not in操作符

    万次阅读 2019-06-11 13:19:38
    in和not in操作符 利用in和not in操作符,可以确定一个值是否在列表中。像其他操作符一样,in和 not in用在表达式中,连接两个值:一个要在列表中查找的值,以及待查找的列表。这些表达式将求值为布尔值。 >>&...

    in和not in操作符

    利用in和not in操作符,可以确定一个值是否在列表中。像其他操作符一样,in和 not in用在表达式中,连接两个值:一个要在列表中查找的值,以及待查找的列表。这些表达式将求值为布尔值。

    >>> 'howdy' in ['hello','hi','howdy','heyas']
    True
    >>> spam = ['hello','hi','howdy','heyas']
    >>> 'cat' in spam
    False
    >>> 'howdy' not in spam
    False
    >>> 'cat' not in spam
    True
    

    例如,下面的程序让用户输入一个宠物名字,然后检查该名字是否在宠物列表中。输入以下代码:

    mypets = ['zophie','pooka','fattail']print('Enter a pet name:')
    name = input()
    if name not in mypets:print('I do not have a pet named ' + name)else:
        print(name + ' is my pet.')

    首先,创建一个列表❶,然后通过变量name来保存用户输入的字符串,在通过判断用户输入的字符串是否存在于列表中❷,如果用户输入的字符串不存在于mypets列表中,那么就输出❸。如果用户输入的字符串在列表中存在,那么则输出❹。

    展开全文
  • Python中列表常用的操作符

    千次阅读 2017-10-11 22:25:27
    1、比较操作符:>、 2、逻辑操作符:and、or、not等,可以加括号,也可以不加。例如>>> list1 False >>> (list1) and (list1==list2) False 但是,建议加上,可读性增强。 3、连接操作符:+;例如:通过‘+’可以将...

    下面介绍Python中列表的常用操作符

    1、比较操作符:>、<、==。注意,列表比较大小的时候是从第一个元素开始比较,而不看列表长度,返回True或者False

    2、逻辑操作符:and、or、not等,可以加括号,也可以不加。例如

    >>> list1<list2 and list1==list2
    False
    >>> (list1<list2) and (list1==list2)
    False

    但是,建议加上,可读性增强。

    3、连接操作符:+;例如:通过‘+’可以将两个列表连接起来

    >>> list1 = [123,456]
    >>> list2 = ['wanglu','love']
    >>> list3 = list1 + list2
    >>> list3
    [123, 456, 'wanglu', 'love']
    >>> list1 + 'a'
    
    Traceback (most recent call last):
      File "<pyshell#70>", line 1, in <module>
        list1 + 'a'
    TypeError: can only concatenate list (not "str") to list

    可以看出,‘+’操作符必须左右两边类型一样才可以(都是列表),如果一个列表,一个字符则不行(类型不一样)。通过‘+’操作符可以实现对列表内容的扩充,但是如果真的想添加列表的元素,不建议用‘+’操作符,而是希望利用append方法,例如:


    >>> list1 = ['wanglu','love']
    >>> list1.append('you')
    >>> list1
    ['wanglu', 'love', 'you']

    4、重复操作符:
    ‘*’,也就是乘法操作符,具体运用如下:

    >>> list1 = ['wanglu','love']
    >>> list1 = list1*5
    >>> list1
    ['wanglu', 'love', 'wanglu', 'love', 'wanglu', 'love', 'wanglu', 'love', 'wanglu', 'love']

    通过乘法,可以对内容进行复制。

    5、成员关系操作符:in 和 not in。可以判断某个元素在不在该列表里面,返回True和False,例如:


    >>> list1 = ['wanglu','love']
    >>> 'wanglu' in list1
    True
    >>> 'you' not in list1
    True
    >>> list2 = ['wanglu','you',[123,456,789],'i']
    >>> 123 in list2
    False
    >>> 123 in list2[2]
    True
    >>> 789 == list2[2][2]
    True

















    展开全文
  • operator模块是python中内置的操作符函数接口,它定义了一些算术和比较内置操作的函数。operator模块是用c实现的,所以执行速度比python代码快。 逻辑操作 from operator import * a = [1, 2, 3] b = a print 'a =...
  • 重载New操作符

    千次阅读 2008-09-24 14:10:00
    可以重载的操作符+- */ %^& |~ !=>*=/= %=^=&=|=>>>===!=>= ||++-- ->*,->[]() operator new operator new[]operator delete operator delete []II.不能重载的操作符::..*? :sizeoftypeidnewdeletestatic_castdynami

    一、重载规则

    I.可以重载的操作符

    +- */ %
    ^& |~ !
    =>< +=-=
    *=/= %=^=&=
    |=>><< >>=<<=
    ==!=>= <=&&
    ||++-- ->*,
    ->[]() operator new operator new[]
    operator delete operator delete []

    II.不能重载的操作符

    ::..*? :
    sizeoftypeidnewdelete
    static_castdynamic_castconst_castreinterpret_cast

    III.基本规则

    1.一元操作符可以是不带参数的成员函数[1]或带一个参数的非成员函数[1]。
    2.二元操作符可以是带一个参数的成员函数[1]或带两个参数的非成员函数[1]。
    3.operator=、operator[]、operator()、operator->只能定义为成员函数[1]。
    4.operator->的返回值必须是一个指针或能使用->的对象。
    5.重载 operator++ 和 operator-- 时带一个 int 参数表示后缀,不带参数表示前缀。
    6.除 operator new 和 operator delete 外,重载的操作符参数中至少要有一个非内建数据类型。
    7.x@y 搜索范围为:x 成员函数--> 全局函数/X所在名字空间中的函数/Y所在名字空间中的函数/X的友元函
       数/Y的友元函数。
    8.重载的的操作符应尽量模拟操作符对内建类型的行为。

    二、使用重载


    I.操作符重载的一些建议

        1.只将会改变第一个参数的值的操作符(如: +=)定义为成员函数,而将返回一个新对象的操作符(如: +)定义为非成员函数(并使用 += 来实现)。
        2.只有非成员函数才能在左参数上实施性别转换,如果需要进行转换则应将操作符定义为非成员函数。
        3.对一元操作符, 为避免隐式转换最好将其重载为成员函数。
        4.对二元操作符, 为能在左操作数上能进行和右操作数一样的隐式转换, 最好将其重载为非成员函数。
        5.为了遵照使用习惯,operator>>、operator<< 应定义为非成员函数。
        6.重载 operator[] 之类的操作符, 应尽量提供 const 版本和非 const 版本。
        7.关于将操作符定义为成员或非成员可参考以下建议:
    操作符建 议
    所有一元操作符成员
    = () [] ->必须为成员
    += -= /= *= ^= &= != %= >>= <<=成员
    其它二元操作符非成员

        8.如果默认操作符已经可以施用于你的型别上, 则应尽量避免重载此操作符. 如 operator, 、operator&(取地址) 等等.

    II. 重载 operator new

        1.为什么要重载 operator new ?

    [效率问题] 通常系统默认提供的分配器速度极慢, 而且分配小型对象时空间浪费严重.
    [改变行为] 默认的分配器失败时会抛出异常, 或许你想改变这种行为.

        2. operator new 的行为

    [区分三个不同的 new]
        new 操作符(new 表达式, new operator, new expression): 通常我们调用 X * pX = new X 时使用的就是这个操作符, 它由语言内建, 不能重载, 不能改变其行为. 它包括分配内存的 operator new 和调用构造函数的 placement new.
        operator new :opeator new 是一个函数, void * operator new(size_t size) . 它分配指定大小的内存, 可以被重载, 可以添加额外的参数, 但第一个参数必须为 size_t. operator new 除了被 new operator 调用外也可以直接被调用: void * rawMem = operator new(sizeof(X)).
        placement new : placement new 在一块指定的内存上使用构造函数, 包含头文件 <new> 之后也可以直接使用 placement new: X * pX = new (rawMem) X. [2]

        与 new operator 类似, 对于 delete operator, 也存在 operator delete: void operator delete(void *), 析构方法 pX->~X().

    [operator new 的错误处理]
        默认的 operator new 在内存分配失败时将会抛出 std::bad_alloc 异常; nothrow new [3]
    (X * pX = new (nothrow) X) 在内存分配失败时将会返回 0 . 这种行为可以通过设置 new-handler 来改变. new-handler 是一个回调函数指针, typedef void(*new_handler)(void). 通过 set_new_handler(new_handler) 函数设置回调句柄后, 如果分配内存失败, operator new 将会不断的调用 new-handler 函数, 直到找到足够的内存为止. 为了避免死循环, new-handler 函数必须具备以下行为之一:
        (1).找到可用的内存.
        (2).安装其它的 new-handler 函数.
        (3).卸除 new-handler, 即 set_new_hanlder(0), 这样下此循环将恢复默认行为抛出异常或返回 0.
        (4).抛出异常.
        (5).保存错误日志, 退出程序.

        3.准备重载 operator new

        重载 operator new 时需要兼容默认的 operator new 错误处理方式. 另外, C++ Standard 规定当要求的内存为 0 byte 时也应该返回有效的内存地址. 所以 operator new 的重载实现应大致如下:
    void * ... operator new(size_t size ... )
    {
        if(size == 0)
             size = 1;

        while(1)
        {
            ... // allocate memery
            if(allocate sucessfull)
                return ... // return the pointer.

            new_handler curhandler = set_new_handler(0);
            set_new_handler(curhandler); // get current new handler

            if(curhandler == 0)
                (*curhandler)();
            else
                throw std::bad_alloc();
        }
    }
        重载 operator delete 简单许多, 只需注意 C++ Standard 要求删除一个 NULL 是安全的即可.

        4.重载 operator new

        opeator new 的重载和其它操作符大不相同.首先, 即使你不重载, 默认的 operator new 也可施用于你的自定义型别上(operator, 也具有此特性), 而其它操作符如果不进行重载就无法使用. 其次, 其它重载其它操作符时参数个数都是固定的, 而 operator new 的参数个数是可以任意的, 只需要保证第一个参数为 size_t, 返回类型为 void * 即可, 而且其重载的参数类型也不必包含自定义类型. 更一般的说, operator new 的重载更像是一个函数的重载, 而不是一个操作符的重载.

    [★ 用不同的参数重载 operator new]

        通过使用不同的参数类型, 可以重载 operator new, 例如 :
    void * operator new(size_t size, int x, int y, int z)
    {
        ...
    }

    X * pX = new (1, 2, 3) X;
        你还可以为 operator new 的重载使用默认值, 其原则和普通函数重载一样, 只要不造成和已存在的形式发生冲突即可. 可能你已经想到了, 你甚至还可以在 operator new 中使用不定参数, 如果你真的需要的话.
    void * operator new(size_t size, int x, int y = 0, int z = 0)
    {
        ...
    }

    X * pX = new (10) X;
    Y * pY = new (10, 10) Y;
    Z * pZ = new (10, 10, 10) Z;

    ...
    void * operator new(size_t size, ...)
    ...
        在全局空间中也可直接重载 void * operator new(size_t size) 函数, 这将改变所有默认的 new 操作符的行为, 不建议使用.

    [★ 重载 class 专属的 operator new]

        为某个 class 重载 operator new 时必须定义为类的静态函数[4], 因为 operator new 会在类的对象被构建出来之前调用. 即是说调用 operator new 的时候还不存在 this 指针, 因此重载的 operator new 必须为静态的. 当然在类中重载 operator new 也可以添加额外的参数, 并可以使用默认值.另外, 和普通函数一样, operator new 也是可以继承的.
    class X{
    ...
    static void * operator new(size_t size); // ... (1)
    static void * operator new(size_t size, int); // ... (2)
    };

    class Y : public X{
    ...
    };

    class Z : public X{
    ...
    static void * operator new(size_t size); // ... (3)
    };

    X * pX1 = new X; // call (1)
    X * pX2 = ::new X; // call default operator new
    X * pX3 = new (0) X; // call (2)

    Y * pY1 = new Y; // call (1)

    Z * pZ1 = new Z; // call (3)
    Z * pZ2 = ::new Z; // call default operator new
    Z * pZ3 = X::new Z; // error, no way to call (1)
    Z * pZ4 = new (0) Z; // error, no way to call (2)

        5.重载 operator delete

        如果你重载了一个 operator new, 记得一定要在相同的范围内重载 operator delete. 因为你分配出来的内存只有你自己才知道如何释放. 如果你忘记了, 编译器不会给你任何提示, 它将会使用默认的 operator delete 来释放内存. 这种忘记的代价是惨重的, 你得时刻在写下 operator new 的同时写下 operator delete.
        如果在类中使用 operator delete, 也必须将其声明为静态函数. 因为调用 operator delete 时对象已经被析构掉了. operator delete 的重载可以有两种形式:
    (1) void operator delete(void * mem)
    (2) void operator delete(void * mem, size_t size)
        并且这两种形式的 operator delete 可以同时存在, 当调用 delete px 时, 如果 (1) 式存在的话将调用 (1) 式. 只有在 (1) 式不存在时才会调用 (2) 式. 对第 (2) 种形式的 operator delete, 如果用基类指针删除派生类对象, 而基类的析构函数没有虚拟的时候, size 的值可能是错误的.

    展开全文
  • 使用命令提示来运行py文件

    千次阅读 2019-03-19 17:00:49
    使用命令提示来运行py文件 打开命令提示方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车。 在桌面上建立一个py文件 如下内容 打开命令提示 命令提示内输入 cd desktop ...
  • python中的三元操作符

    千次阅读 2017-09-01 14:16:55
    今天看廖大的教程,发现了python中原来也有三元操作符,之前接触过一点的Java中也有 今天特此记录一下 #比较俩数中比较小的一个:  a= 3 b = 8 small = (a if a print(small) 比较三个数中比较小的一个...
  • 操作符重载手册

    千次阅读 2007-04-02 18:17:00
    一、重载规则I.可以重载的操作符 + - * / % ^ & | ~
  • c++ 重载New操作符

    千次阅读 2010-02-20 09:41:00
    可以重载的操作符+- */ %^& |~ !=>*=/= %=^=&=|=>>>===!=>= ||++-- ->*,->[]() operator new operator new[]operator delete operator delete []II.不能重载的操作符::..*? :sizeoftypeidnewdeletestatic_castdynami
  • C++操作符重载手册

    千次阅读 2012-05-26 17:13:43
    可以重载的操作符 + - * / % ^ & | ~ ! = > += -= *= /= %= ^= &= |= >> >>= == != >= && || ++ -- ->* , -> [] () operator new
  • Python 切片操作符 ([], [:], [::])

    千次阅读 多人点赞 2019-08-29 19:32:59
    Python 切片操作符 ([], [:], [::]) 1. [], [:], [::] []:访问序列中的一个元素,例如 str_list[3] 表示访问 str_list 序列中的第四个元素。 [:]:访问序列中的一段元素,例如 str_list[1:4] 表示访问 str_list ...
  • Python中原始字符串操作符 r R

    万次阅读 2015-08-08 21:17:11
    "<pyshell#0>" , line 1 , in f = open ( "D:\windows\temp\readme.txt" , 'r' ) IOError: [Errno 22 ] invalid mode ( 'r' ) or filename: 'D:\\windows\temp\readme.txt' 所以应在文件路径前加上...
  • python 取反操作符(~)

    千次阅读 2020-07-29 10:31:26
    误人子弟呀 误人子弟,看了几篇博客,真的是坑 ~ : 按位取反运算符:对数据的每...⑥取反操作是在原码上进行的 ⑦符号位,1表示负数,0表示正数 2、例子 #################### ~(-2) 首先你要知道 -2 在计算机里面的
  • Python ' ~ ' (取反) 操作符解释

    万次阅读 2017-03-24 14:21:21
    (4)取反操作是在原码上进行的!实际的计算结果: ~4 = -5, ~-5 = 4依据上述第四条,我们的解释思路是,确定原码===> 取反 (1) 求~4, 我们用八进制来表示4: 4的原码: 0000 0100 取反得到: 1111 1011,
  • 程序中的选择结构中除了if-else、elif之外,还有一个三元操作符。三元操作符也是根据条件判断执行哪一个代码块,但它的最大特点是不需要像if-else语句那样写多行代码,而是只需一行代码。 本关要求学习者能够学会并...
  • 问题1、在使用CMD命令提示运行PyQt5.py文件时,发现找不到文件的报错提示,但是在pycharm中运行时可以正常运行 问题2、直接在cmd中复制py的路径,回车执行时,会自动弹出pycharm的窗口,如下图所示 但使用python ...
  • 在python中 乘号 * ,可以作为重复操作符 和 乘号,两种方式 # -*- coding:utf-8 -*- var = 'python'*5 print var var = [36]*10 print var var = [None]*10 print var var = 3 * 5 print var 运行结果: ...
  • 关于python的执行顺序和@操作符

    千次阅读 2015-10-21 12:34:46
    之前一直以为py文件是从 if __name__ == "__main__": 开始执行的= = 但!事实是python是顺序执行的!!! 那么,该语句又有何作用呢? 首先,__name__是所有模块都会有的一个内置属性,一个模块的__
  • Python字符串格式化 (%占位操作符)

    万次阅读 多人点赞 2017-11-07 15:39:05
    Python中内置有对字符串进行格式化的操作 %。 模板 格式化字符串时,Python使用一个字符串作为模板。模板中有格式,这些格式为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值...
  • 库中几个最常用的WINAPI函数,重载了操作符<<,使得cout可以定位输出以及设置颜色。 用法: cout<<Goto(x,y)<<setC(foreColor,bgColor)<<123<<cr; Goto(x,y) 定位到坐标(x,y) ,...
  • Python 原始字符串操作符(r/R)

    千次阅读 2016-03-29 09:46:57
    "<pyshell#0>" , line 1 , in   f = open ( "D:\windows\temp\readme.txt" , 'r' ) IOError: [Errno 22 ] invalid mode ( 'r' ) or filename: 'D:\\windows\temp\...
  • 问题简介 我们在使用WINDOWS系统时,常常遇到的问题是双击编写好代码的.py...在Windows系统中,要调用系统的“命令提示”去打开编写好代码的py文件,有两种方法打开win系统额命令提示: 方法一 快捷组合键“wi...
  • 1.字符串转义序列 转义字符 描述 \(在行尾时) 续行 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n
  • '''获取文件操作符''' if file not in self._fd_dict: fd = open(file, type) self._fd_dict[file] = fd else : fd = self._fd_dict.get(file) return fd def _write(self, fd, sql): fd.write(sql) fd....
  • MyExample2020.py

    2020-02-10 22:50:58
    自己入门学习的例程,涵盖基本语法和图像化界面; 逻辑操作符 运算符 变量定义 打印 获取键盘字符 绘制图形
  • h5py快速入门指南

    万次阅读 2018-10-13 13:14:42
    h5py是Python语言用来操作HDF5的模块。下面的文章主要介绍h5py的快速使用入门,翻译自h5py的官方文档:http://docs.h5py.org/en/latest/quick.html 。该翻译仅为个人学习h5py为目的,如有翻译不当之处,请速联系读者...
  • web2py shell

    2018-01-25 17:09:42
    这是web2py官方文档经常提的一个词:web2py shell ...在 Windows 操作系统下,可以使用如下命令来启动 web2py(在 DOS 提示下输入): 1 web2py.exe -S 项目名 在 Linux 或其他 Unix 操作系统下,很可能 Pyt
  • python setup.py卸载

    千次阅读 2019-12-22 13:26:14
    我已经安装了python setup.py install的python包。 我该如何卸载它?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,317
精华内容 24,926
关键字:

py的比较操作符