Python知识点

PEP8特殊约定

单前导下划线:_var

单下划线意味着该变量或者方法是一个私有属性,这种命名方式只是PEP8中的一种命名约定。只有以下一种情况会被Python解释器强制执行,当你使用通配符进行导入的时候,该属性是不会被自动导入。其它情况如:常规导入,直接读取等都不会被Python解释器强制执行。

单末尾下划线: var_

只是为了解决命名和关键字冲突

双前导下划线 :__var

当在类上下文中使用时,触发"名称修饰器"。由Python解释器强制执行。

_MangledGlobal__mangled = 23

class MangledGlobal:
   def test(self):
       return __mangled

>>> MangledGlobal().test()
23

双前导和双末尾下划线:init

Python的一些特殊方法

单下划线:_

在Python命令窗口中可以访问到最近一次执行成功的结果

>>> 20 + 3
23
>>> _
23
>>> print(_)
23

>>> list()
[]
>>> _.append(1)
>>> _
[1, 2, 3]

数据类型

所有数据类型:整数、浮点数、字符串、布尔值、空值、列表、元组、集合、字典。尽管字典这种数据类型和js中的对象很像,但是对应的js类型时Map类型,所以在Python中是不存在对象这种数据类型的(这里的对象是指js中的Object)。

整数

当数字太长时可以使用下划线分割,例如:100_000_000100000000相同,十六进制同理。

浮点数

使用科学计数法把10用e代替Python也可以识别

字符串

如果想输出多行字符串需使用'''abc'''

布尔值

存在和js相同的逻辑"与,或,非"运算规则,例如:print(True and '1234')输出为'1234'print(True or '1234')输出为True。且和js相同的是在逻辑运算中空值None会被识别成False。

列表

和js的数组特性一致

元组

元组区别与列表的是一旦初始化就不允许进行更改。当声明只有一个元素的元组时应该加","进行区别(1,)

字典

和js中的Map所对应

集合

和js的Set对应

循环

在Python中只可以通过下列四种方法去进行循环for inwhilemap()filter()。 在Python3中map和filter内置函数会返回迭代器对象,值得注意的是如果不去调用迭代器内的值,map或者filter的处理函数不会被立即调用,而js的map和filter函数在使用时会立即调用处理函数。

函数

Python中函数的参数根据作用一共可以分为五种类型分别是:必选参数、默认参数、可变参数、关键字参数和命名关键字参数。这使得在Python中函数的可玩性比在js中要高上很多。 注意:Python函数的参数定义,必须按照如下顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。 Python与js函数区别

  1. Python函数在使用时可以根据参数名进行传值。

    def enroll(name, gender, age=6, city='Beijing'):
    print('name:', name)
    print('gender:', gender)
    print('age:', age)
    print('city:', city)

    js函数这样调用会把city当成变量直接报错

    enroll('Adam', 'M', city='Tianjin')

  2. Python函数如果默认参数是可变对象时,多次调用函数并不会重新赋值,所以在使用默认参数时值尽量用不可变对象。

    def add_end(L=[]):
    L.append('END')
    return L

    js使用默认参数时,不会存在下面这种问题,他会每次都重新声明一次值

    add_end() # ['END']
    add_end() # ['END', 'END']

  3. Python和js都可以定义可变参数,不同的是js使用arguments读取可变参数,而Python直接在参数前加*即可。

    def calc(*numbers):
    sum = 0
    for n in numbers:
    sum = sum + n * n
    return sum
    calc(1, 2) # 5
    nums = [1,2,3]

    在list或tuple类型的变量前面加一个*号就可以变成可变参数

    calc(*nums) # 14

  4. Python中可以使用关键字参数,区别可变参数的是,可变参数会自动组装的成一个Tuple,而关键字参数则是组装成一个dict。 :::info 在js中完全没有这种使用使用方法 :::

    def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
    person('Bob', 35, city='Beijing') # name: Bob age: 35 other: {'city': 'Beijing'}
    extra = {'city': 'Beijing', 'job': 'Engineer'}
    person('Jack', 24, **extra) # name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

  5. Python中的命名关键字参数有点特殊,需要使用*进行分割,当然你也可以使用可变参数进行分割。当使用命名关键字参数时,在调用函数时需要把参数名带上,不然会被解释器识别成普通的位置参数。

    def person(name, age, *, city, job):
    print(name, age, city, job)
    person('Jack', 24, city='Beijing', job='Engineer') # Jack 24 Beijing Engineer
    def person(name, age, *args, city, job):
    print(name, age, args, city, job)

:::danger 虽然Python函数支持通过传入tuple和dict去调用函数,如:f1(*args, **kw)。但是强烈不介意使用这种写法,因为这会使得代码可读性非常的差 :::

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。


👉CSDN大礼包🎁:[全网最全《Python学习资料》免费赠送🆓!](https://mp.weixin.qq.com/s/iz-AAyAyjgYGSMZJrZH7fg)(安全链接,放心点击)

相关推荐
qiyi.sky5 分钟前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~8 分钟前
分析JS Crash(进程崩溃)
java·前端·javascript
Envyᥫᩣ10 分钟前
Python中的自然语言处理:从基础到高级
python·自然语言处理·easyui
哪 吒10 分钟前
华为OD机试 - 几何平均值最大子数(Python/JS/C/C++ 2024 E卷 200分)
javascript·python·华为od
我是陈泽13 分钟前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
hakesashou14 分钟前
python全栈开发是什么?
python
安冬的码畜日常18 分钟前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
创作小达人33 分钟前
家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)
开发语言·python
ZPC821043 分钟前
Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)
开发语言·python·matplotlib
镜花照无眠1 小时前
Python爬虫使用实例-mdrama
开发语言·爬虫·python