c++转python,有些语法就是不一样

摘录自 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

python基础

1 Python允许用'''...'''的格式表示多行内容

2空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

3 理解变量,以下代码你一定会搞错

a = 'ABC'
b = a
a = 'XYZ'
print(b)

执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'

执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

所以,最后打印变量b的结果自然是'ABC'了。

4字符编码的问题

Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。

本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b9000

数据结构

熟悉tuple list set dic

tuple 元祖:但是tuple一旦初始化就不能修改list 列表:我认为相当一样vectordic: 相当于Map

set

collections:

namedtuple来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。

deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈defaultdic 使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict
OrderedDict 如果要保持Key的顺序,可以用OrderedDictCounter是一个简单的计数器

函数

这个功能你可能没有看到过

>>> a = abs # 变量a指向abs函数
>>> a(-1) # 所以也可以通过a调用abs函数
1
Python的函数返回多值的其实就是返回一个tuple

定义可变参数:在参数前面加了一个*号 ,Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去。关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

高级特性

切片操作:

生成器:在Python中,这种一边循环一边计算的机制,称为生成器:generator

函数式编程
Python对函数式编程提供部分支持

函数式编程就是一种抽象程度很高的编程范式,函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。可以接受函数作为参数外,还可以把函数作为结果值返回闭包:注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还被新函数引用匿名函数:匿名函数lambda x: x * x

模块

有用的datetime模块
IO

with open('/Users/michael/test.txt', 'w') as f:
    f.write('Hello, world!')
错误调试

assert 断言
logging.basicConfig(level= logging.info) logging.info()
面向对象高级编程

1 动态绑定属性和方法
class Student(object):
    pass

s = Student()
s.name  = "dai"
s.age = 33

def set_score(self, score):
       self.score = score
Student.set_core = set_score
2 python 允许多重继承
Mixin方式

3 class中还有许多这样有特殊用途的函数,可以帮助我们定制类
__str__ __iter__ __getitem__ __getattr__ __call__

4 Eum 的使用



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值