Python 零基础快速上手(与C/C++对比)

简介: Python 零基础快速上手(与C/C++对比)

只要有一点C/C++基础的,快速上手 Python 就特别容易些。



语句


Python 语句行没有结束符 ←→ C语言用( ; )表示语句结束


多行连接符:反斜杠( \ )将一行的语句分为多行显示。 ←→ 这一点与C相同


但语句中包含 [], {} 或 () 括号就不需要使用多行连接符。


Python 代码块也不用C语言中的大括号{ }代码块分界。



缩进


Python 的特色之一的就是用缩进来分隔代码块。 ←→ C语言的缩进仅用来美化代码

缩进的空白数可多可少,但所有代码块语句必须包含相同的缩进空白数,这个必须严格执行。



空行

空行不是语法的一部分,与缩进不同:不使用空行Python解释器运行时也不会出错。

空行的作用:仅在于分隔两段不同功能或含义的代码。 ←→ 这一点比C更重要,因为没有{ }



注释

单行注释采用( # )开头 ←→ C用( // )

三个连续的引号可实现注释多行代码。‘‘‘ code ’’’ 或 “““ code  ”””  ←→ 与C语言用( /* code */ )类同



输出

Python3.x print() ←→ C用 printf()、cout()等等

Python2.x print 没有括号,且默认输出是换行的,如要不换行在变量末尾加上逗号( , )。

区别:print(x,y)  print x,y



原型

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

sep -- 用来间隔多个对象,默认值是一个空格。

end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

file -- 要写入的文件对象,默认值是sys.stdout,通常就是输出到屏幕显示。

flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

返回值

无。



print() 默认输出换行符的,不想换行就设置end的值: print(x,end=',')  ←→ C/C++用 '\n' / endl

print() 默认间隔符是空格,也可设其它:print('www','baidu','com',sep='.');不想隔开则设sep=''



标识符

标识符由字母、数字、下划线组成,但不能以数字开头,且区分大小写。←→ 这一点基本与C相同



变量


Python 没有声明变量的命令。首次为其赋值时,才会创建变量。 ←→ C必须先声明后使用

变量赋值用( = ),允许连续赋值: x = y = z = 1 ←→ 这一点与C++相同

还可以分别赋不同的值: x , y = 1 , 2  ←→ C语言没有这种语法

方便交换两个变量的值: x , y = y , x  ←→ C语言需要一个临时变量中转




数据类型

数值类型: int, float, complex
文本类型: str
序列类型: list, tuple, range
映射类型: dict
集合类型: set, frozenset
布尔类型: bool
二进制类型: bytes, bytearray, memoryview




Numbers:


只有整数、小数、复数三种类型 ←→ C语言细分了很多种类,且无复数类型

int(有符号整型)

long(长整型[也可以代表八进制和十六进制])

float(浮点型)

complex(复数)

Python3.x 已废除 long 类型,使用 int 替代。

Python2.2+ int类型溢出后会自动转为long类型。

Python 支持复数类型,由实部和虚部构成,用 a + bj 或 complex(a,b) 表示,a b 都是浮点型。



int float complex
10 0.0 3.14159j
100 3235.20 323.j
-323 -3.23 3.23e-613j
080 32.3e+18 .323j
-0230 -90. -.613323+0J
-0x260 -32.54e100 3e+23J
0x369 3.23E-613 3.23e-6j



String:


表示文本类型的数据,用单引号、双引号均可。←→ C语言中只能用双引号,单引号表示字符

也可用连续的3个引号,允许跨行且三引号内可包含换行符、单双引号等特殊字符。注意与注释的区别


= 赋值   + 连接   * 重复


下标从左到右索引默认0开始的,索引最大值是字符串长度减1。←→ 这一点与C相同

从右到左索引默认-1开始的,最大值是字符串长度的相反数。←→ C++中String有rbegin(),但计数还是正的


子串运算[a:b] 第a个字符到第b个字符之前的子串;区间前闭后开,子串长度=b-a。←→ 区间开闭规则与C类同,但C取子串不是用 [ : ] 取的

[a:b:n] 可以有第3个参数n,表示取子串的间隔步长,缺省时等于1就是连续地取子串。


>>>str = 'Hello World!'

# ←→ 以下表达与C相同

>>>str            # 完整字符串

>>>str[0]        # 第1个字符

>>>str + "T"   # 连接的字符串

# ←→ 以下表达是C没有的

>>>str[-1]        # 最末一个字符

>>>str[-2]        # 倒数第2个字符

>>>str[-3:-1]    # 倒数第3个到最后一个字符之前的子串

>>>str[2:5]      # 第2个和第6个之间(不含第2和第6个)的子串

>>>str[2:]        # 从第2个字符开始的子串

>>>str[:]          # 没有数字等于str全串

>>>str * 3       # 重复字符串3次

>>>(str + ' ') * 5  # 可用 + 和 *  混合运算

>>>str[0:-1]+str[-1]  # 不加最后一个字符的话不等于str全串

# 正、负下标可以混用,但实际位置必须前小后大,否则返回空串:

# str[-1:-3]  str[3:1]  str[-1:3]  str[1:-3]

# str[::2] 步进>1时“隔开取字符”

# str[::-1] 步进为负数时串倒序

>>> int(str(12345)[::-1])  #54321


字符串长度: len(str) ←→ C++中String用法 str.length() 或 str.size()


判断是否子串: str in "abcd"  / str not in "abcd" ←→ C++中String用法 str.find()


python 转义字符: 用反斜杠( \ )转义字符 ←→ 与C语言的用法基本相同


Python 字符串格式化符号:


符号 功能
%c 格式化字符及其ASCII码
 %s  格式化字符串
%d  格式化整数
%u  格式化无符号整型
%o  格式化无符号八进制数
%x  格式化无符号十六进制数
%X  格式化无符号十六进制数(大写)
%f  格式化浮点数字,可指定小数点后的精度
%e  用科学计数法格式化浮点数
%E  作用同%e,用科学计数法格式化浮点数
%g  %f和%e的简写
%G  %F 和 %E 的简写
%p  用十六进制数格式化变量的地址



Python 串格式化操作符辅助指令:

符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)



例: print("%.2f"%3.14159) ←→ C语言中的格式串与输出内容之间是用逗号分隔的。


  print( "%.2f %.3f"%(3.14159,3.1415926) ) 多个表达式时要用括号,中间用逗号分隔。


Python2.6+ 新增了一种格式化字符串的函数str.format(),增强了字符串格式化的功能。


注:就先只了解这2大类数据,还有bool型不用多说的。至于其他的数据类型可以放到以后慢慢学习。



数组

Python 没有内置对数组的支持,使用序列、映射、集合等类型代替。 ←→相当于 C++中的容器类


序列集合类型

列表(List)是一种有序和可更改的集合。允许重复的成员。←→相当于 C++中的List Vector

元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。 ←→相当于 C++中的Array

集合(Set)是一个无序和无索引的集合。没有重复的成员。←→相当于 C++中的Set

词典(Dictionary)是一个无序,可变和有索引的集合。没有重复的成员。←→相当于 C++中的Map



列表(List)

访问List类用下标 [:] ,与字符串下标访问很类似。



元组(Tuple)

Python的元组与列表类似,不同之处在于元组的元素不能修改。


元组、集合使用小括号( ),列表使用方括号[ ],字典使用大括号{ }。




关键字(保留字)


保留字不能用作常数或变数,或任何其他标识符名称。←→ 这一点基本与C相同

所有 Python的关键字都只包含小写字母,列表如下:

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield



 ←→ 红色标注的与C相同



运算符

image.png



is 与 ==


判断序列seq(字符串、列表、元组) 是否为空时,使用隐性的 if not seq 判断,因为空序列的逻辑值为False;


判断数字num是否为 0 时,使用 num == 0,而不使用用 if not num。因为num变量也可能设置的是默认值为 None;


判断对象x是否为 None 使用 x is None,而不用 not x。  




运算符优先级


(..) [..] {..}      定义元组、列表、字典

s[i]、s[i:j]      [:] 字符串索引

s.attribute     . 取属性

s(...):          函数调用

**                  幂指运算

~ + -             按位反, 正号和负号

* / % //          乘除,余和整除

+ -                加减

>> <<           右移,左移

&                  按位与

^ |                 按位异或、按位或

<= < > >=     比较运算符

<> == !=       等于运算符

= %= /= //=   赋值运算符

-= += *= **=  (等级同上)

is    is not     身份运算符

in    not in     成员运算符

not and or    逻辑运算符




表达式


由一个或多个操作数以及运算符(可有可无都行)组成的序列。


三元表达式  ret =  xifexpressionelsey   [ C语言 ret = expression ? x : y ]




控制语句


控制语句 功能
if...else /elif  当条件成立时运行语句块。[ elif 相当于else if ]
 for /else  for 循环。[ 关键字相同语句表达不同,另C/C++中没有for-else结构 ]
while /else  while 循环。[ Python中没有do-while结构;C/C++中没有while-else结构 ]
break  中断循环,返回上一层循环。
continue  提前下一轮循环。
class  用于定义类型。
return  函数返回表达式的值。
global  命名空间,引用全局变量。
try...except 
/finally
 捕捉异常,处理程序运行中出现的异常情况。try-except , try-except-else,  try-finally,  try-except-finally
def  用于定义函数和类型的方法。
del  删除引用。
pass  表示此行为空,不运行任何操作。
assert  用于程序调试阶段时测试运行条件是否满足。[ C/C++ <assert.h>库函数 ]
with /as  Python2.6+ 定义的语法,在一个场景中运行语句块。
yield  在迭代器函数内使用,用于返回一个元素。相当于函数中的return,Python 2.5+ 这个语句变成一个运算符。
raise  触发异常。
import  导入一个模块或包。
from...import  从包导入模块或从模块导入某个对象。
import...as  将导入的对象赋值给一个变量。
in  判断一个对象是否在一个字符串/列表/元组里。



函数


函数代码块以 def 关键词开头。


后接函数标识符名称和圆括号(参数|自变量)。


函数内容以冒号( : )起始,并且缩进。


第一行内容通常可以加上注释函数功能。


以 return [表达式]  结束,返回表达式的值。


不带表达式的return相当于返回 None。


 ←→ 与C相同的是 return ; 不同的是用 def 声明 和 使用 : 及缩进。


• def functionname( parameters ):
• """comments"""
•    function_suite
• return [expression]




形参

  • positional-or-keyword:位置或关键字,指定一个可以作为位置参数传入也可以作为关键字参数传入的实参。这是默认的形参类型,例如下面的 foobar:
    def func(foo, bar=None): ...


   positional-only:仅限位置,指定一个只能通过位置传入的参数。 仅限位置形参可通过在函数定义的形参列表中它们之后包含一个 / 字符来定义,例如下面的 posonly1 和 posonly2:

   def func(posonly1, posonly2, /, positional_or_keyword): ...

   keyword-only:仅限关键字,指定一个只能通过关键字传入的参数。仅限关键字形参可通过在函数定义的形参列表中包含单个可变位置形参或者在多个可变位置形参之前放一个 * 来定义,例如下面的 kw_only1 和 kw_only2:

   def func(arg, *, kw_only1, kw_only2): ...

   var-positional:可变位置,指定可以提供由一个任意数量的位置参数构成的序列(附加在其他形参已接受的位置参数之后)。这种形参可通过在形参名称前加缀 * 来定义,例如下面的 args:

   def func(*args, **kwargs): ...

   var-keyword:可变关键字,指定可以提供任意数量的关键字参数(附加在其他形参已接受的关键字参数之后)。这种形参可通过在形参名称前加缀 ** 来定义,例如上面的 kwargs。


形参可以同时指定可选和必选参数,也可以为某些可选参数指定默认值。


如要在函数内部改变全局变量的值,使用 global 关键字引用该变量。



x = 1
def myFunction():
  global x
  x = 2
myFunction()
print(x)


内置函数

相当于C/C++语言的标准库函数。


image.png



常用函数简介


1)Python数据类型转换:


int(x [,base ])      将x转换为一个整数  

long(x [,base ])   将x转换为一个长整数  

float(x )               将x转换到一个浮点数  

str(x)                   将x转换为字符串  

repr(x)                将x转换为表达式字符串  

eval(str)              字符串转有效Python表达式,并返回一个对象  

tuple(s)               将序列 s 转换为一个元组  

list(s)                  将序列 s 转换为一个列表  

chr(x)                  整数转换为一个字符  

unichr(x)             整数转换为Unicode字符  

ord(x )                字符转换为它的整数值  

hex(x )                整数转换为一个十六进制字符串  

oct(x )                 整数转换为一个八进制字符串  

complex(real [,imag ])     创建一个复数  




2)Python数学函数


pi                     数学常量 pi(即圆周率π)

e                      数学常量 e (即自然常数)

abs(x)              返回数字的绝对值,如abs(-10) 返回 10

ceil(x)               返回数字的向上取整值,如math.ceil(4.1) 返回 5

cmp(x, y)          比较函数,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

exp(x)              返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

fabs(x)             返回数字的绝对值,如math.fabs(-10) 返回10.0

floor(x)             返回向下取整值,如math.floor(4.9)返回 4

log(x)               如math.log(math.e)返回1.0,math.log(100,10)返回2.0

log10(x)           返回以10为基数的x的对数,如math.log10(100)返回 2.0

max(x1, x2,...) 返回给定参数的最大值,参数可以为序列

min(x1, x2,...)  返回给定参数的最小值,参数可以为序列

modf(x)           返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示

pow(x, y)         等于运算x**y后的值

round(x [,n])    返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数

sqrt(x)             返回数字x的平方根



3)Python随机数函数


choice(seq)    从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数

random()        随机生成下一个实数,它在[0,1)范围内

seed([x])         改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed

shuffle(lst)      将序列的所有元素随机排序

uniform(x, y)   随机生成下一个实数,它在[x,y]范围内

randrange ([start,] stop [,step])  从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1


4)Python三角函数


acos(x)         返回x的反余弦弧度值

asin(x)          返回x的反正弦弧度值

atan(x)         返回x的反正切弧度值

atan2(y, x)    返回给定的 X 及 Y 坐标值的反正切值

cos(x)           返回x的弧度的余弦值。

hypot(x, y)    返回欧几里德范数 sqrt(x*x + y*y)

sin(x)            返回的x弧度的正弦值。

tan(x)            返回x弧度的正切值。

degrees(x)    将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x)     将角度转换为弧度


5)Python字符串函数


isalnum()       如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

isalpha()        如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

isdecimal()    如果 string 只包含十进制数字则返回 True 否则返回 False.

isdigit()          如果 string 只包含数字则返回 True 否则返回 False.

islower()        如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

isnumeric()    如果 string 中只包含数字字符,则返回 True,否则返回 False

isspace()       如果 string 中只包含空格,则返回 True,否则返回 False.

istitle()            如果 string 是标题化的(见 title())则返回 True,否则返回 False

isupper()        如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

isdecimal()     检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。

capitalize()     把字符串的第一个字符大写

center(width)  返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

format()          格式化字符串

max(str)          返回字符串 str 中最大的字母。

min(str)           返回字符串 str 中最小的字母。

join(seq)         以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

ljust(width)      返回一个原字符串左对齐,并使用空格填充至长度width的新字符串

lower()            转换 string 中所有大写字符为小写.

lstrip()             截掉 string 左边的空格

upper()           转换 string 中的小写字母为大写

zfill(width)       返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0

rjust(width)     返回一个原字符串右对齐,并使用空格填充至长度width的新字符串

rpartition(str)   类似于 partition()函数,不过是从右边开始查找.

rstrip()             删除 string 字符串末尾的空格.

strip([obj])       在 string 上执行 lstrip()和 rstrip()

swapcase()     翻转 string 中的大小写

title()   返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

index(str, beg=0, end=len(string))  

跟find()方法一样,只不过如果str不在 string中会报一个异常.

count(str, beg=0, end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

decode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'

encode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

endswith(obj, beg=0, end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。

find(str, beg=0, end=len(string))

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

maketrans(intab, outtab])

用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

partition(str)  

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str ==  

replace(str1, str2,  num=count(str1))

把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

split(str="", num=count(str))

以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串

splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

startswith(obj, beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

translate(str, del="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 del 参数中。



6)Python其它函数


divmod()                input()                open()

staticmethod()        all()                    enumerate()

any()                eval()                 isinstance()

sum()                basestring()

execfile()            issubclass()            print()                super()

bin()                file()                    iter()                property()

bool()                filter()                len()

range()                type()                bytearray()            float()

raw_input()            unichr()                callable()

format()                locals()                reduce()                unicode()

frozenset()           reload()

vars()                classmethod()        getattr()                map()

repr()                xrange()                cmp()                globals()

reversed()            zip()                    compile()

hasattr()                memoryview()       __import__()

complex()            hash()                    set()

delattr()                help()                next()                setattr()

dict()                hex()                object()                slice()

dir()                    id()                    sorted()




基础练习


一、四个数字1、2、3、4 能组成哪些互不相同且无重复数字的三位数?

for i in range(1,5):
  for j in range(1,5):
    for k in range(1,5):
      if ((i!=j)and(j!=k)and(k!=i)):
        print(i*100+j*10+k)


方法一:for循环语句:for i in range(a,b)

# range(5) 即:从0到4,不包含5,即0,1,2,3,4

# range(1,5) 即:从1到4,不包含5,即2,3,4,5

# range(0,6,2) 即:0,2,4。第三个参数表步长,缺省默认为1

# 和字符串、元组中取部分的规则相类似


import itertools
j=0
a=[1,2,3,4]
for i in itertools.permutations(a,3):
    j+=1
    print print (i[0]*100+i[1]*10+i[2])


    方法二:permutations()函数

   # 是itertools库函数,需要import  ←→ 相当于 C++中的 #include <itertools>

   # itertools.permutations(a,3) 表示到Tuple元组a中任取三个元素



二、输出九九乘法口诀表

for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2ld '%(j,i,i*j),end='')
    print()
'''
1*1= 1 
1*2= 2 2*2= 4 
1*3= 3 2*3= 6 3*3= 9 
1*4= 4 2*4= 8 3*4=12 4*4=16 
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
'''


# 或者把print()的输出对象都用逗号分隔开;但分隔符sep要设为空值
for i in range(1,10):
    for j in range(1,i+1):
        print(j,'*',i,'=','%2d'%(i*j),' ',sep='',end='')
    print()

print() 空参数用于换行,且要与第二个for语句对齐;

注意缩进的重要:若与第一个print对齐,就会只输出一列。




三、斐波那契数列,输入项数n输出F(n)

# 定义递推实现
print('请输入要输出数列的第几项?(递推法)')
target=int(input())
res=0
a,b=1,1
for i in range(target-1):
    a,b=b,a+b
print(a)
def Fib(n):
    '''函数递归实现'''
    return 1 if n<3 else Fib(n-1)+Fib(n-2)
print('请输入要输出数列的第几项?(递归法)')
print(Fib(int(input())))


   Python 的计算能力太强大了,递推法计算F(1000000)只用了20秒左右,但是递归法计算F(40)大概要40秒。


   input()函数 ←→相当于 C中的scanf() / C++中的cin()

   a, b = 1, 1  ←→ 这是python特有的赋值,C++中只能用 a = b = 1

   a, b = b, a+b  ←→  C语言中要用临时变量中转: t = a+b; a = b; b = t


至此,Python 的基础内容已经全部或者大部分都罗列了,看完就可到网上搜些基础题目练手了!


比如搜一下: “Python基础训练100题”,编程需要多实践,不断地在犯错找bug中逐步巩固知识。




目录
相关文章
|
3月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
223 0
|
4月前
|
编译器 开发工具 C++
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
1900 0
|
1月前
|
C++ Python
探索Python与C/C++混合编程的艺术
探索Python与C/C++混合编程的艺术
36 1
WK
|
2月前
|
机器学习/深度学习 Java 程序员
为什么Python比C++慢很多?
Python相较于C++较慢主要体现在:动态类型系统导致运行时需解析类型,增加开销;作为解释型语言,逐行转换字节码的过程延长了执行时间;自动内存管理和垃圾回收机制虽简化操作但也带来了额外负担;全局解释器锁(GIL)限制了多线程性能;尽管Python库方便灵活,但在性能上往往不及C++底层库。然而,Python在某些领域如数据分析、机器学习中,凭借其高级别抽象和简洁语法仍表现出色。选语言需依据具体应用场景和需求综合考量。
WK
72 1
|
3月前
|
Unix C语言 C++
Python调用C/C++
Python调用C/C++
25 2
|
3月前
|
PHP C++ Python
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
62 0
WK
|
3月前
|
机器学习/深度学习 运维 Java
Python 相对于 C++ 有哪些明显的优势
C++是一种强大且高效的编程语言,被广泛应用在系统软件、游戏开发、嵌入式系统等多个领域。然而Python在某些方面展现出显著优势:Python语法简洁直观,易于学习与使用,提高了代码的可读性和团队协作效率;拥有丰富的第三方库和框架资源,能有效提升开发效率;具备良好的跨平台性,无需大量修改即可适应不同操作系统;
WK
52 0
|
4月前
|
算法 Java C++
C++和Python在内存管理上的主要区别是什么?
【7月更文挑战第2天】C++和Python在内存管理上的主要区别是什么?
114 1
|
4月前
|
存储 Java 程序员
Python和C++在内存管理方面有什么不同?
【7月更文挑战第2天】Python和C++在内存管理方面有什么不同?
83 0
|
4月前
|
Java C++ 开发者
如何根据项目需求选择使用C++还是Python进行内存管理?
【7月更文挑战第2天】如何根据项目需求选择使用C++还是Python进行内存管理?
47 0