网站首页 > 技术文章 正文
我在写数据处理程序时,有时候会需要看一点数学公式,有时候需要写一点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的搭配是很常见的组合。初学时,要注意读文档,做测试,不可以简单类比。
- 上一篇: python 加、减、乘、除、乘方运算符
- 下一篇: python一行代码打印「迷宫」建议收藏
猜你喜欢
- 2024-12-15 一文了解 “*” 星号在 Python 中的多种用法
- 2024-12-15 什么是序列,Python序列详解(包括序列类型和常用操作)
- 2024-12-15 python中pyd文件的使用 py文件edit with idle
- 2024-12-15 如何用python代码实现手动输入两个数,并实现两个数的运算
- 2024-12-15 python一行代码打印「迷宫」建议收藏
- 2024-12-15 python 加、减、乘、除、乘方运算符
- 2024-12-15 python每天学习一点点(列表中+、*号、extend()方法的使用方法)
- 2024-12-15 简单学Python——内置函数22——range()函数
- 2024-12-15 用Python的numpy库进行线性拟合或者多项式拟合
- 2024-12-15 一个简单代码加减乘除Python 加减乘除的python代码如何编写
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)