python 学习
import 与 from import 区别
import 模块 不会跳过私有属性
from 模块 import 函数
from 模块 import * 会跳过私有属性
学习一门语言不光光是学习语法,还要学习相关的项目管理,以及 相关库。以及一些开源项目。(2023.5.4)
from…import *语句与import区别在于:
import 导入模块,每次使用模块中的函数都要是定是哪个模块。
from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。
笔者建议:一般来说,推荐使用 import 语句,避免使用 from … import,因为这样可以使你的程序更加易读,也可以避免名称冲突
来源:https://www.runoob.com/note/26325
python2 与 python3 到底学哪个好。都要学。纠结浪费的时间,都已经学好了。
Python package对于Python package 文件夹而言,与Dictionary不同之处在于其会自动创建_ _ init__.py文件
@符号 修饰符:
@符号用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,出现在函数定义的前一行,不允许和函数定义在同一行。
一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错)。
例子1:
def wrap(f):
def decorator(*args, **kw):
print 'Call %s()' % f.__name__
return f(*args, **kw)
return decorator
@wrap
def func(a, b):
return a * 10 + b
if __name__ == '__main__':
print func(1, 2)
输出:
C:\Python27\python.exe E:/workspacePython/testProject/main.py
Call func()
12
Process finished with exit code 0
例子2:
def wrap1(f):
def decorator(*args, **kw):
print 'Call %s() in wrap1' % f.__name__
return f(*args, **kw)
return decorator
def wrap2(f):
def decorator(*args, **kw):
print 'Call %s() in wrap2' % f.__name__
return f(*args, **kw)
return decorator
@wrap2
@wrap1
def func(a, b):
return a * 10 + b
if __name__ == '__main__':
print func(5, 6)
输出:
C:\Python27\python.exe E:/workspacePython/testProject/main.py
Call decorator() in wrap2
Call func() in wrap1
56
Process finished with exit code 0
总结:
由上面的例子可以看出,@符号其实就是个包装器,第2个例子中的func(5,6)其实含义是:wrap2(wrap1(func(5,6)))
每一层调用装饰都传递的是函数对象,每一层Wrap返回对象也是一个可调用的对象(如上例中的decorator)
来源:cnblogs.com/kuliuheng/p/10645243.html
python单引号和双引号的区别
简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串。但是这两种通用的表达方式,除了可以简化程序员的开发,避免出错之外,还有一种好处,就是可以减少转义字符的使用,使程序看起来更简洁,更清晰。
更多学习内容,请点击python学习网。
举个两个例子:
1、包含单引号的字符串
假如你想定义一个字符串my_str,其值为: I’m a student,则可以采用如下方式,通过转义字符 \ 进行定义
my_str='I\'mastudent'
也可以不使用转义字符,利用双引号直接进行定义
my_str="I'mastudent"
2、包含双引号的字符串
假如你想定义一个字符串my_str,其值为: Jason said “I like you” ,则可以采用如下方式,通过转义字符 \ 进行定义
my_str="Jasonsaid\"Ilikeyou\""
也可以不使用转义字符,利用单引号直接进行定义
my_str='Jasonsaid"Ilikeyou"'
通过这种方式,在合适的场景下采用单引号,或者双引号,是不是可以非常有效的避免转义字符的使用,并且可以使代码看起来更加的简洁清晰,易懂。
还有多行打印
知识点扩展:
1.表示注释
#Author:Archer Zon
#3个单引号表示注释多行
'''
gf_of_archerzon = "Wang"
print("archerzon的女盆友是",gf_of_archerzon)
print("archerzon的女盆友是%s"%gf_of_archerzon)
'''
2.表示多行打印
#Author:Archer Zon
msg='''
gf_of_archerzon = "Wang"
print("archerzon的女盆友是",gf_of_archerzon)
print("archerzon的女盆友是%s"%gf_of_archerzon)
'''
输出:
gf_of_archerzon = "Wang"
print("archerzon的女盆友是",gf_of_archerzon)
print("archerzon的女盆友是%s"%gf_of_archerzon)
到此这篇关于python里的单引号和双引号的有什么作用的文章就介绍到这了,更多相关python里的单引号和双引号的区别内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
来自:https://cloud.tencent.com/developer/article/1724569
python 注释: 单行 #
多行
'''
注释
'''
"""
注释
"""
三对 单引号或者多引号
python2 与 python3 区别:
Python3和Python2在项目结构方面没有太大的区别,它们都使用相同的目录结构和文件命名约定。不过有一些细微的差别:
-
print语句:Python2中的print语句不需要括号,而Python3中的print语句需要用括号。因此在Python3中,你需要将所有的print语句改为print()函数调用。
-
字符串编码:在Python2中,默认使用ASCII编码,而在Python3中默认使用Unicode编码。因此,在处理字符串时,需要考虑编码的问题。
-
继承object:在Python2中,如果定义一个类,不需要显式地继承object。而在Python3中,如果你想定义一个新式类,必须显式地继承object。
-
异常处理:在Python2中,可以使用逗号将多个异常类型放在一起处理,而在Python3中需要使用as关键字。例如,在Python2中可以这样写:except (ValueError, TypeError):,而在Python3中需要这样写:except (ValueError, TypeError) as e:。
-
xrange函数:在Python2中,有一个名为xrange()的函数,它返回一个生成器,用于迭代一系列整数。而在Python3中,这个函数被废弃了,取而代之的是range()函数,它返回一个可迭代对象。如果需要一个生成器,可以使用Python3中的新函数range()来替代xrange()。
-
Division操作:在Python2中,如果两个整数相除,结果会被向下取整,返回整数类型;而在Python3中,除法操作总是返回浮点数类型,即使两个操作数都是整数。如果要在Python3中进行整除操作,可以使用 // 运算符。
总之,虽然在项目结构上Python2和Python3相似,但是在语言特性上有很多不同,需要开发者在编写代码时注意这些细节。
在Python2中,如果你想要使用Python3中的某些特性,你可以导入__future__模块,以便在Python2中启用这些特性。在Python3中,__future__模块仍然存在,但它通常不需要被导入,因为Python3已经默认启用了这些特性。
虽然在Python2和Python3中都存在__future__模块,但它们支持的特性略有不同。在Python2中,__future__模块可以启用的特性包括:
-
print_function:启用Python3中的print函数,使得print语句成为函数调用。
-
division:启用Python3中的除法操作,即两个整数相除时返回浮点数类型。
-
absolute_import:改变了模块导入的行为,使得只有绝对导入才会被执行,而相对导入则不会被执行。
-
unicode_literals:将所有字符串视为Unicode字符串,而不是ASCII字符串。
-
generators:优化生成器的行为,使得在Python2中使用生成器更加高效。
而在Python3中,__future__模块可以启用的特性包括:
-
annotations:增强函数参数和返回值的注释功能。
-
generator_stop:为生成器添加了close方法,使得可以更方便地关闭生成器。
-
division:启用Python2中的整除操作,即两个整数相除时返回整数类型。
-
print_function:在Python3中,这个特性默认已经启用,所以在Python3中通常不需要导入__future__模块来使用print函数。
总之,虽然Python2和Python3都支持__future__模块,但是它们支持的特性略有不同。在Python2中,__future__模块主要用于启用Python3中的特性,而在Python3中,__future__模块则更多地用于试验一些新特性。
模块路径查找:
搜索路径
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
- 1、当前目录
- 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
- 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
以上 2023.2.21号记录
模块与包的区别
package 包含多个 module。
一个python一个模块
有以下几种导入方式:
import subpackage1.a # 将模块subpackage.a导入全局命名空间,例如访问a中属性时用subpackage1.a.attr
from subpackage1 import a # 将模块a导入全局命名空间,例如访问a中属性时用a.attr_a
from subpackage.a import attr_a # 将模块a的属性直接导入到命名空间中,例如访问a中属性时直接用attr_a
安装 flask pip2
解决
一下来自https://www.wyr.me/post/678 安装正确的pip2 版本:
正确的安装姿势
sudo apt install wget python-is-python2 # 安装wget和python2
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py
复制下面的命令,可快速完成python2和python3以及对应pip的安装。
sudo apt install wget python python3 python3-pip python-ply python3-ply -y
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py
记得重启终端。
一键理解 flask:https://smartkeyerror.com/Flask-Web
讲解python flask 非常好。
from flask import Flask
app = Flask(__name__)
@app.route("/api/hello")
def hello():
return "Hello World~"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8356, debug=True)
python 类型
元组:小括号,不能修改。
list 列表:中括号 [1,2,3,4,5]
set集合:大括号 ,不重复。{'a','b','c'} 。set(). 无序。
dirt 字典:大括号,有冒号。key一般不重复。重复,使用后面的,代替。
2023.2.22 以上记录时间
https://www.codersrc.com/archives/6015.html
python2 需要安装 future
pip install future
python3 自带future库,无需要安装。
execute.submit()
execute.map(func,sec) 最好用 lamda p
三.Python 线程池 ThreadPoolExecutor 函数介绍
- 1.ThreadPoolExecutor 构造实例的时候,传入 max_workers 参数来设置线程池中最多能同时运行的线程数目。
- 2.使用 submit 函数来提交线程需要执行的任务(函数名和参数)到线程池中,并返回该任务的句柄(类似于文件、画图),注意 submit 不是阻塞的,而是立即返回。
- 3.通过 submit 函数返回的任务句柄,能够使用 done 方法判断该任务是否结束。下面的例子可以看出,由于任务有 2s 的延时,在 task1 提交后立刻判断, task1 还未完成,而在延时 4s 之后判断,task1 就完成了。
- 4.使用 cancel 方法可以取消提交的任务,如果任务已经在线程池中运行了,就取消不了。这个例子中,线程池的大小设置为 2 ,任务已经在运行了,所以取消失败。如果改变线程池的大小为 1 ,那么先提交的是 task1,task2 还在排队等候,这是时候就可以成功取消。
- 5.使用 result 方法可以获取任务的返回值,注意:这个方法是阻塞的。
https://zhuanlan.zhihu.com/p/343232126
以上 2023.3.3
pip 版本太低。
安装高版本pip
https://blog.csdn.net/weixin_45036339/article/details/121355851
在线下载:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar -xvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
sudo python2 setup.py build
sudo python2 setup.py install
手动下载
随便找一个文件目录,安装setuptools包,
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar -xvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
sudo python2 setup.py build
sudo python2 setup.py install
离线下载 地址:https://pypi.org/project/pip/20.3.4/#files
tar -zxvf pip-20.3.4.tar.gz
cd pip-20.3.4/
sudo python2 setup.py install
以上2023.3.8
python2 与python3 区别:https://www.zhihu.com/question/19698598
unicode 与str, 变成str与 bytes 。
xrange 变成 range
基础语法:https://www.runoob.com/python3/python3-basic-syntax.html
没事看看 菜鸟教程:https://www.runoob.com/python3/python3-tutorial.html
标识符:第一个字符必须是字母表中字母或下划线 _;标识符的其他的部分由字母、数字和下划线组成。 标识符对大小写敏感;与go相同。
基础数据类型:不变:数字number,字符串string,tuple元组; 变的列表list,字典map,集合set。
python3 环境搭建:https://www.runoob.com/python3/python3-install.html
以下为在 Unix & Linux 平台上安装 Python 的简单步骤:
- 打开 WEB 浏览器访问 https://www.python.org/downloads/source/
- 选择适用于 Unix/Linux 的源码压缩包。
- 下载及解压压缩包 Python-3.x.x.tgz,3.x.x 为你下载的对应版本号。
- 如果你需要自定义一些选项修改 Modules/Setup
以 Python3.6.1 版本为例:
# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.1
# ./configure
# make && make install
检查 Python3 是否正常可用:
# python3 -V
Python 3.6.1
以上 2024.5.9
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫