精华内容
下载资源
问答
  • python中:x +=1x = x + 1的区别

    万次阅读 多人点赞 2019-10-21 17:47:33
    1、注释: (1)不可变元素的类型有:整数、浮点数、字符串、元组 (2)可变元素的类型有:列表、字典 ...3、在可变元素类型中(列表、字典)“x +=1"与"x=x+1"的区别说明: (3.1)不可变元素的类型,“x...

    1、注释:
    (1)不可变元素的类型有:整数、浮点数、字符串、元组
    (2)可变元素的类型有:列表、字典

    2、说明:
    问题:“=”号的作用是将对象引用与内存中的对象进行绑定,整数既然是“不可变”的,如何改变一个指向整数的变量值呢?
    答案:直接在内存中创建一个新的整数值,然后将变量引用与其绑定

    3、在可变元素类型中(列表、字典)“x +=1"与"x=x+1"的区别说明:
    (3.1)不可变元素的类型,“x +=1"与"x=x+1"作用一样,没有区别
    (3.2)可变元素的类型中,“x +=1"与"x=x+1"作用不同,区别如下:
    x +=1,表示:修改x自身的值(前提是:x必须是可变对象)
    x = x + 1,表示:创建一个新的"同名”对象x,并将x + 1,赋值给新创建的同名变量x(它的含义和y = x + 1相同,只不过这里将y取名为x了),x + 1赋值给新x后,旧x的指向就会被释放

    4、程序说明如下:
    程序说明1:

    print('*************整数,不可变变量***********************')
    z = x = 1
    x +=2
    print('z等于:',z)
    
    print('\n')
    
    z = x = 1
    x = x + 2
    print('z等于:',z)
    
    print('\n')
    print('*************列表,可变变量***********************')
    print('\n')
    
    z = x = [1,2]  #初始,x和z都指向[1,2]
    x +=[3,4]  #修改x自身的值
    print('z等于:',z)  #x和z,指向相同,当x本身被改变的时候,z因为指向相同,也会被改变
    
    print('\n')
    
    z = x = [1,2] #初始,x和z都指向[1,2]
    x = x + [3,4] #创建新同名变量:x,并将x+1赋值给x(即新x指向x+1,旧x指向释放)
    print('z等于:',z) #因为不是改变x自身,而是创建一个新的变量x,改变新的变量x,旧的x变量不变,因此z不变
    

    在这里插入图片描述

    程序说明2:

    def myfun(ls = []):
    	ls.append('a')
    	print(ls)
    print('列表append:')
    myfun();myfun();myfun()  																																																																																																																																																																																																																										
    print('\n')
    
    def sum(ls = []):
    	ls =ls + ['a'] #创建新变量ls,ls指向:ls+['a'],同名旧变量ls不改变,还是指向None
    	print(ls)
    print('列表相加:')  #执行一次sum(),创建并输出一个新ls,同时不会改变旧ls,因此,每次输出都是['a']
    sum();sum();sum()
    print('\n')
    
    def sum(ls = []):
    	ls +=['a']  #ls自身加['a'],因此ls改变了
    	print(ls)
    print('列表相加:')  #执行一次sum(),ls改变一次,因此会输出:['a']、['a','a']、['a','a','a']
    sum();sum();sum()
    print('\n')
    
    y=x=[5]
    x +=[5]  #对x本身加上[5]
    print('x+=是:',x, 'y是:',y)
    print('\n')
    x = x + [5] #创建一个同名的变量x,并将x+[5]赋值给新x
    print('x+[5]是:',x,'y是:',y)
    
    

    在这里插入图片描述

    展开全文
  • C 语言中,x += 5 == 4 是什么意思

    万次阅读 多人点赞 2020-04-11 20:14:46
    #讨论这个有意义吗?这个是在知乎上看到的一个问题,评论挺多的。其中有人提到,研究这个东西有什么用?编程的时候我们不能这么写的。我记得在大学的时候,我们的副院长给我们上课,就给我们提到,...

    #讨论这个有意义吗?

    这个是在知乎上看到的一个问题,评论挺多的。其中有人提到,研究这个东西有什么用?编程的时候我们不能这么写的。我记得在大学的时候,我们的副院长给我们上课,就给我们提到,要习惯并且喜欢使用 「( 」和 「)」,这两个符号。

    所以上面的表达式,如果想表达清楚自己的意图,可以这样写

    ((x += 5) == 4)
    

    或者是

    (x += (5 == 4))
    

    但是有些程序员为什么喜欢这样写呢?

    我们可以肯定,写出这样代码的人,一定对运算符优先级背得滚瓜烂熟了。如果作为一个程序员,他认为对运算符要了如指掌,他觉得别人对这个代码肯定一眼就能看懂,他写出这样的代码也是没有问题的。

    我们学这样的代码有什么用?

    学习这样并不表示我们要写出这样的代码,而是,我们如果在工作学习中,遇到这样的代码,我们就一眼能看出来这个代码的作用。

    C语言的标准有几百页,大部分人不会仔细研究每个细节,有些工程师觉得某些东西没有用,大概率是因为他在自己的工作中没有用到。有的程序员喜欢研究或者在工作中需要使用这样的方法,这就是这种代码存在的其中一个原因吧。

    #表达式和运算符优先级

    C语言在一个表达式中,如果遇到几个运算符,要考虑优先级结合方向

    比如,表达式 x pri1 y pri2 z,可能出现两种可能性

    • (x pri1 y )pri2 z

    • x pri1 (y pri2 z)

    如果运算符 pri1 的优先级比pri2 高,那么就是上面的第一种情况。

    如果运算符 pri1 的优先级比pri2 低,那么就是上面的第二种情况。

    如果优先级相同,那就要考虑结合方向。

    结合方向是 「左到右」或者「右到左」。

    例如,「= 」 的结合方向是 「右到左」。

    所以

    a = b = c  表达式的意义是 a =( b = c  )

    而 「+」的结合方向是 「左到右」

    所以

    a + b + c  表达式的意义是 (a + b) + c

    #C语言运算符优先级

    #解析上面的表达式

    x += 5 == 4
    
    • 「+=」 的优先级是14

    • 「 ==」 的优先级是 7

    所以上面表达式的意义是

    x += (5 == 4)
    

    运行一下

    #表达式的巧用

    很多人不怎么用这种取巧的写法,我这两天看代码看到一个,截图给大家看看,非常简单,也是一种取巧的方法,挺有意思的。一般情况下,我们还是会把 x = y 写在if 外面,直接写在if里面还是挺有意思的。

    如果写成下面这样的话会输出什么呢?评论给出你的答案~

    #include "stdio.h"
    
    int main(void)
    {
     int x = 2; 
     int y = 4;
     int z = 4;
     
     if( x = y >= z){
      printf("-----------01\n");
     }
     return (0);
    } 
    

      回复「 篮球的大肚子」进入技术群聊

    回复「1024」获取1000G学习资料

    展开全文
  • Python中x+=y与x=x+y区别

    千次阅读 2020-02-04 17:26:41
    >>>a=[1,2] >>>b=a >... b+=[3] >>> b [1, 2, 3] >>> a [1, 2, 3] 可见+=会同时更新a,b >>>a=[1,2] >>>b=a >>>b [1, 2]...
    >>>a=[1,2]
    >>>b=a
    >>>b
    [1, 2]
    >>> b+=[3]
    >>> b
    [1, 2, 3]
    >>> a
    [1, 2, 3]

    可见+=会同时更新a,b

    >>>a=[1,2]
    >>>b=a
    >>>b
    [1, 2]
    >>> b=b+[3]
    >>> b
    [1, 2, 3]
    >>> a
    [1, 2]

    而x=x+y则是将x作为新对象操作

    展开全文
  • Python--x += y和x = x + y的区别

    千次阅读 2018-05-30 06:42:25
    一.对于不可变类型(string, int, tupe),两种... n1 = 1 >>> id(n1) 1936485392 >>> n1 = n1 + 1 &gt

    一.对于不可变类型(string, int, tupe),两种方法相等,都改变了原来的值,生成了新的对象

    >>> n1 = 1
    >>> id(n1)  
    1936485392
    >>> n1 = n1 + 1 
    >>> n1  
    2
    >>> id(n1)
    1936485424
    >>> 
    >>> n2 = 1
    >>> id(n2)
    1936485392
    >>> n2 += 2
    >>> id(n2)
    1936485456

    二.对于可变对象(list, dict),两种方法有差别,x += y没有产生新对象,x = x +y 产生了新对象

    >>> list1 = [1 ,2]       
    >>> id(list1)    
    2787361876040
    >>> list2 = [3, 4]      
    >>> list1 += list2      
    >>> list1       
    [1, 2, 3, 4]
    >>> id(list1) 
    2787361876040       # 对象id没有发生变化
    >>> 
    >>> list3 = [1, 2]
    >>> id(list3)   
    2787361653000
    >>> list3 = list3 + list2
    >>> list3   
    [1, 2, 3, 4]
    >>> id(list3)
    2787361755464       # 对象id发生了变化

    需要注意在函数中使用不同运算符的时候,会导致不同结果的陷阱

    >>> def add_num1(n):
           n += n
    
    >>> list1 = [1, 2]    
    >>> id(list1)     
    2787361757384
    >>> add_num1(list1)      
    >>> list1      
    [1, 2, 1, 2]         # 作为参数的变量的值被改变了
    >>>     
    >>> def add_num2(n):
           n = n + n
    
    >>> list1 = [1, 2]    
    >>> add_num2(list1)       
    >>> list1      
    [1, 2]               # 作为参数的变量的值没有被改变
    展开全文
  • C语言中的*p1++=*p2++

    千次阅读 2019-06-11 10:36:01
    例:把一个数组的内容复制给另一个数组 #define SIZE 50 int x[SIZE]; int y[SIZE]; int *p1, *p2;... *p1++=*p2++; } *p1++ 后缀++ 操作符的优先级高于*操作符,即*p1++ = *(p1++) 故执行顺序为:p1++ ...
  • Python中i = i + 1与i + = 1的区别

    千次阅读 2018-12-09 13:33:00
    +=是对原本的实例做加1运算,l=l+[1]是对l+[1]之后重新把值赋给叫l的变量(和原来的l不同) 区别在于,一个修改数据结构本身(就地操作)b + = 1而另一个只是重新分配变量a = a + 1。 只是为了完整性 l = [] ...
  • Python中变量自增、i+=x与i=i+x、is与==

    万次阅读 2016-11-22 19:36:04
    在Cpp中,我们总是讨论前缀自增和后缀自增的效率问题:++i 是i=i+1,表达式的值就是i本身i++ 也是i=i+1,但表达式的值是加1前的副本,由于要先保存副本,因此效率低一些。那么我看python中的自增呢? ++i>>> i=1 >>> +...
  • Makefile 中:= ?= += =的区别

    千次阅读 2015-11-12 18:06:04
    Makefile 中:= ?...= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE  VRE = “Hello World!” else endif ifeq ($(OPT),define)  
  • Python学习之 i += 3 与 i = i +3

    千次阅读 2018-09-06 18:13:07
    详解Python中表达式i += x与i = i + x是否等价,python表达式 最近看到一个题目,看似很简单,其实里面有很深的意义,题目是Python 表达式 i += x 与 i = i + x 等价吗?如果你的回答是yes,那么恭喜你正确了50%,...
  • android android.mk中:= ?= +=之间的区别

    千次阅读 2015-12-24 16:16:51
    = +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE  VRE = “Hello World!” else endif ifeq ($(OPT),define)  VRE ?= “Hello World!...
  • 简单聊一下makefile中的 =, :=, ?=和+=

    千次阅读 2016-11-06 21:09:14
    最容易混淆的是 =和:=, 我们先来看看makefile: ...test1: test1.cpp @echo $(y) 执行make后, 结果为world, 再看改动后的makefile: x = hello y := $(x) x = world test1: test1.cpp @echo $(y) 执行m
  • linux下chmod +x意思?为什么要进行chmod +x

    万次阅读 多人点赞 2018-05-24 17:14:39
    上周在工作中接触到chmod +x ...这一步是什么意思呢?经过上网查询(说的比较复杂,引申太多)和咨询我们研发(还是研发说的通俗易懂) chmod +x意思就是给执行权限 LINUX下不同的文件类型有不同的颜色,这里 ...
  • x++ 与 ++x 的区别整理

    千次阅读 2021-06-25 10:21:50
    简单的表达式 中x++和++x表示着相同的意思,比如常用于for循环语句中; 当 递增 或者 递减 的运算结果被直接用在其他表达式中,x++与++x就代表着 不同 的意思了 ++x:变量 x的值先增加 ,再 计算整个表达式的值 ; x...
  • x=(y<x++)?1:0

    2013-01-19 10:39:31
    java中 int x=3, y=4; x=(y<x++)?1:0; x=多少? 不懂x=(y<x++)?1:0; 这行代码的意思
  • 超平面、Wx=b或Wx+b=0的几何意义

    千次阅读 多人点赞 2019-07-14 00:06:22
    二维空间中,满足 ax + by + c = 0 的所有点 (x, y) 在几何上是一条直线(类似于 y = k1x + k2)。 三维空间中,满足 ax + by + cz = d 的所有点 (x, y, z) 在几何上是空间的一张平面。 n维空间中, 满足n元一次...
  • php中 $x++ 和 ++$x 的区别?

    千次阅读 2019-04-10 19:42:32
    $x++ : 先计算x的值,再将x的值自增1。 ++$x : x的值先自增1,再计算x的值。 实例: 1、$x++: 代码如下: <?php $x = 15; echo $x++; ?> 展示效果: 2、++$x: 代码如下: &l...
  • ++xx++的区别

    千次阅读 2019-04-18 14:48:08
    ++xx的值先自增1,再计算x的值。 x++是先计算x的值,再将x的值自增1。 举例: int x=10; System.out.println(x++); System.out.println(x); 第一个输出10, x++先在当前表达式中使用x的值,然后再将x的...
  • 在搜索Ax+By+Cz+D=0的时候,看了半天没明白ABCD到底是什么,看到有些人又说了Ax+By+C=0,说这是直线方程,但还是没搞明白ABC到底是什么,没有找到明确的答案。有的话大多数都是A,B为系数, C为常数之类的废话,却没...
  • java实现 CRC8 校验 多项式 x8+x2+x+1

    万次阅读 2018-12-19 20:14:58
    也没有找到java CRC8 多项式 x8+x2+x+1的实现,能找到的都是x8+x5+x4+1的,后转google,费了些功夫不过还好找到了。不说了,上代码。 package com.smartsocket.utils; /** * * * @author...
  • x = x&(x-1)

    千次阅读 2019-09-08 20:51:38
    (x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。 如下面 int x=9;inti;for( i = 0; i < x; i++) { x &= (x-1); } 执行结束 i =2,因为9=1001...
  • int a=2,b=4,c=6,x,y,q,p; y = ((x=a+b),(b+c)); q = (p=a+b),(b+c); printf ("%d,%d\n",x,y); printf ("%d,%d\n",p,q); return 0; } 逗号运算符的优先级要低于等于号, 所以在使用逗号运算符的时候外面要...
  • Java中x++与++x的区别

    万次阅读 2018-04-22 23:43:52
    面试中常见的一个问题x++跟++x的区别一般回答都是x++是先运算然后自增,而++x则是x自增然后运算。单独使用时他们没有区别。下面我们上代码int x = 5;int y = x++;由于x++参与了运算,所以先将x的值赋给了y,然后再...
  • 题目的大致意思,是读入一个非负整数N,然后求出X、Y、Z非负整数解。解这道题的朴素方法,自然是设置一个计数变量counter,然后利用一个三重循环(或者两重),依次对X、Y、Z赋值,当X、Y、Z的组合满足方程时,...
  • 关于++xx++区别

    千次阅读 2017-03-10 22:28:55
    x++要申请临时内存,效率不如++x。表达式中,x++先返回x再自增,++x先自增再返回x
  • 面试中常见的一个问题x++跟++x的区别 一般回答都是x++是先运算然后自增,而++x则是x自增然后运算。单独使用时他们没有区别。 下面我们上代码 int x = 5; int y = x++; 由于x++参与了运算,所以先将x的值赋给了y,...
  • 相信大家在学习TSP(状态压缩)的时候遇到了这个困难,那即是( (x&y) + ( (x^y)>>1 ) )是什么意思?what's up?当然小编来给你解释一番: 这到底什么意思呢?大家来看几个例子:第一,如果带入x=3,y=5,那么会得到...
  • 在C++中++xx++的用法

    千次阅读 2018-07-16 21:13:55
    对于c和c++的初学者来说,对++xx++的用法想来有一定的困惑。其实++xx++对操作数的影响是一样的,只是他们所影响的时间是有差异的。就好像是吃完饭再付钱,还是先付钱再吃饭。下面来看一个程序,以便更加直观的...
  • 如何通俗地解释欧拉公式(e^πi+1=0)?微信公众号:matongxue314欧拉公式将指数函数的定义域扩大到了复数域,建立和三角函数和指数函数的关系,被誉为“数学中的天桥”。形式简单,结果惊人,欧拉本人都把这个公式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 665,688
精华内容 266,275
关键字:

x+=1什么意思