百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python和C语言中的几个比较容易混淆的运算符号

off999 2024-11-08 12:47 17 浏览 0 评论

我在写数据处理程序时,有时候会需要看一点数学公式,有时候需要写一点Python代码,有时候需要写一点C代码。我发现,有一些数学计算的符号,在数学、C和Python等语言中有些反直觉,或者不那么一致的地方,需要在经常使用的过程中熟悉并注意辨别。

Python中的星号符号*

在常见的语言中,星号都主要用于表示乘法。

a = 2, b = 3
c = a*b

上面c等于6。

如果是一个列表类型,它乘以某个数,却表示列表的重复。

比如一个列表

a = [1,2,3]
b = a * 2
# b = [1,2,3, 1,2,3]

一个tuple,

a = (1,2)*2
# a = (1,2,1,2)

一个字符类型的:

name = "Tom"
names = name * 2
# names = "TomTom"

一个字节类型的:

rawdata = b'Nancy'
rawdata_dup = rawdata * 2
# rawdata_dup = b'NancyNancy'

而两个星号一起时,作为binary operator,则表示指数运算

a = 3**2
# a = 9

此外,星号在Python中还表示可变列表, 而两个星号在一起则表示可变命令参数,或字典。

def func(a,b, *args, **kwargs):
    pass

在上面的函数中,args是list类型的变量,kwargs是dict类型的变量。

Python数学库numpy中的*

而在最重要的Python数学库numpy中,星号乘法运算的含义,初学时容易误以为会与列表运算的语义相同。但其实不是。

import numpy as np
a = np.array([1,2])
b = a * 2
# b = ndarray([2,4])

在numpy中,默认是向量运算,在运算前,会按需要进行变量的broadcast处理。因此,上面的运算等价于:

import numpy as np
a = np.array([1,2])
b = a * [2,2]
# b = ndarray([2,4])

C中的星号*

在C语言中,我们第一反应,星号也是表示乘法,然后也很容易想到它用于指针。

乘法:

int a = 2;
int b = 3;
int c = a * b;
// c = 6.

指针

int age = 18, *p_age = NULL;
p_age = & age;
// *p_age 等于 18. 

C中的指数运算, **还是^?

我们很容易误以为可以用两个星号表示指数运算,但是C语言中是没有为指数运算定义操作符的。这时,我们可以使用的是<math.h>中定义的pow函数.

#include <math.h>
  
int a = 2, b = 3;
int c = pow(a,b);
//c = 8

此外,由于我们在数学(LaTex等)中常常用^表示指数,而^运算在C中是有意义的,如果误以为它是指数运算,程序编译不会出错,但运算结果是错的。

在C语言中,^表示按位进行XOR运算。

int a = 0x001;
int b = 0x001;
int c = 0x100;
int d = a ^ b;
// c = 0x000
int e = a ^ c;
// e = 0x101

总结

为了完成应用功能,我们会学习使用多种相似又有区别的语言。尤其是对于数据工程师而言,Python和C的搭配是很常见的组合。初学时,要注意读文档,做测试,不可以简单类比。

相关推荐

阿里旺旺手机客户端(阿里旺旺手机app)

手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。  阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...

最纯净的pe装机工具(pe工具哪个纯净)

U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...

装一个erp系统多少钱(wms仓库管理软件)

现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

dell笔记本客服电话(dell笔记本客服电话人工服务)

戴尔中国的官方网站http://www.dell.com/zh-cn。通过这个网站购买的都没有问题;有问题也可以进入官网联系售后客服,也可以拔打dell电脑说明书上的售后热线,都可以为你解决的。还是建...

联想乐商店app官方下载(联想乐商店在哪下载)

您好!很遗憾!若是您的手机联想乐商店和联想游戏中心只能有流量,建议您核实是否乐安全有限制wifi上网,核实您所使用的wifi是否本身有限制。若还是无效,可清除缓存数据;备份资料恢复出厂设置尝试。欢迎您...

fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
  • fat32u盘(FAT32u盘多少钱一个)
不用拉网线的路由器是真的吗

是真的不插卡不拉线有线就有网,这11个字其实就涵盖了无线路由器的特点,无线路由器免插卡、不用拉网线,完全摆脱了之前家用路由器和网线捆绑的模式,有电就有网,其实说的就是无线路由器的使用操作简单,通电就可...

微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
  • 微信恢复好友怎么弄回来(vx好友恢复)
u盘检测软件下载(u盘测试软件)

1、u盘芯片检测工具(ChipEasy)可以查看USB设备PID、VID、SN、制造商、产品名等;2、查看USB设备主控芯片信息、闪存芯片信息、固件信息、电流控制3、SSD型号...

电脑现在什么系统最好(电脑现在用什么系统好)

WINXP好用,但过时了。VISTA不好用,没推开就夭折了。WIN8/8.1是针对触模屏设计的,如果你用的不是触摸屏平板电脑是普通电脑,使WIN8/8.1总觉着很蹩扭。新出的WIN10,功能...

账号怎么注册(steam账号怎么注册)

如果注册是qq账号【qq号码的申请办法】【1】双击qq登陆界面,在qq帐号填写空格的后面你可以看见:[申请帐号];【2】点击[申请帐号]进入,就可以在网上免费申请号码了;【3】进入www.qq.com...

tmp文件是什么意思(tmp文件有什么用)

在系统C:\Windows\Temp文件夹中,我们经常会发现一些后缀名为TMP的文件,在该文件夹中的这些文件其实都是临时文件。它们可能是系统被误关机,或者其他程序没有删除而生的。而且在该文件夹中还有其...

怎么给u盘格式化(怎么给u盘格式化成FAT32)

u盘插入电脑,等待桌面弹出u盘图标。打开“计算机”。左键选中u盘,单击右键,在弹出的菜单中,点击“格式化”。点击“开始”,点击“确定”即可。格式化u盘详细步骤1、找到U盘盘符,鼠标右键点击,弹出菜单中...

取消回复欢迎 发表评论: