当前位置: 首页 > news >正文

Python学习之day02学习(函数模块的上传、数据类型+)

Python提供了一组技术,可以很好的实现共享,包括模块和一些发布工具

模块的发布流程如下:

一、函数模块的调试

  • 函数转模块

这里采用了递归的方式依次递归得到每个元素

def print_lol(the_list):for each_item in the_list:if isinstance(each_item,list):print_lol(each_item)else:print(each_item)print_lol([1,2,3,4,5,6,7])

Python标准库(第三方模块PyPi)

Python Package Index(Python包索引)为Internet第三方Python模块提供一个集中的存储库 ,你可以使用PyPi发布你的模块

  • 注释代码

一般采用三重引号建立多行注释,三重引号之间的所有内容被认为是一个注释

二、准备发布(distribution)

1.首先为模版创建一个文件夹,之后将nester.py复制到这个文件夹中,并给这个文件夹命名为nester

2.在新文件中创建一个setup.py文件(包含元数据)

from distutils.core import setupsetup(name='nester',version='1.0.0',py_modules=['nester'],author='fedu',author_email='ce@jfedu.net',url='http://www.jfedu',description='A simple printer of nested lists'
)

3.构建发布

在nester文件夹打开一个终端端口,输入一行命令:   python setup.py sdist

发布安装到Python副本中(python setup.py install)

pyc这里编译之后加速的二进制虚拟机环境,可以保证py环境跨平台特性

Python模块实现命名空间

import nester
from nester import print_lol
from nester import print_lol as pl =====>pl(movie)

Python中所有的代码都与一个命名空间相关联。主程序代码与一个__main___的命名空间相关联,python会自动创建一个与模块同名的命名空间

第三方库包网站(pip install package)

python setup register

上传包至三方库

python setup sdist upload

使用阿里云第三方库

pip install -i https://mirrors.aliyun.com/pypi/simple/ requests

如何控制迭代指定的次数(range()),它可以用来生成从0到某个数的数字列表

for num in range(4):print(num)
## level用来遇到嵌套列表时插入制表符
def print_lol(the_list,level):for each_item in the_list:if isinstance(each_item,list):print_lol(each_item,level)else:for tab_shop in range(level):print("\t",end="")print(each_item)## 修改setup.py文件### 发版更新的三方模块库
python setup sdist upload

模块支持两个不同版本的API(对于所定义的函数,生成的不同函数API版本)

可选参数的使用

## level用来遇到嵌套列表时插入制表符
def print_lol(the_list,indent=false,level=0):for each_item in the_list:if isinstance(each_item,list):print_lol(each_item,indent,level+1)else:if indent:for tab_shop in range(level):print("\t",end="")print(each_item)

三、数据类型之字符串,列表,函数

  • 字符串使用(str)

'abc'
>> 'abc'"abc"
>> 'abc'"""abc"""
>> 'abc's="abc汉字"
len(s)>> 5ascii(s)
>> "'abc\\u6c49\\u5b57'""ab'c"
>> "ab'c"'ab"c'
>> 'ab"c''ab\'c'
>> "ab'c""""abc"""
>> 'abc'"""
a
b
c
"""
>>  '\na\nb\nc\n'## 字符串类型转换
type(b"abc")
>>  <class 'bytes'>type(u"abc")
>>  <class 'str'>"a""b"":c"
>> 'ab:c'## 字符串转义
r"abc\nd"
>> 'abc\\nd'"abc\nd"
>> 'abc\nd'str(2.2)
>> '2.2'## 字符串拼接'hello'+'world'
>>    'helloworld'"Python培训哪家强{}".format('halo')
>>    'Python培训哪家强halo'"%s %s" %(1,2)
>>    '1 2'"Python我一定可以学好{0},{1}一定要开网页".format('good','me')
>>    'Python我一定可以学好good,me一定要开网页'## 字符串的拆分和合并
s="a,b,c"
>>    s.split(',')
['a', 'b', 'c']>>     ','.join(l)
'a,b,c's="abc"
>>    s.find('a')
0>>    s.find('b')
1>>    s.find('c')
2>>    s.find('v')
-1>>    s[0]
'a'>>    s[-1]
'c'>>    s[2]
'c'
  • 列表使用(list)

l=[1,4,2,3]
>>    l.sort()l
>>    [1, 2, 3, 4]
x=['abc','a','bc','bcd']>>    x.sort(key=len)
>>    x
['a', 'bc', 'abc', 'bcd']
  • 元组使用(tuple)

只读属性,不能进行增加和删除,元组相较于列表占用空间小

>>    empty_tuple=()
>>     empty_tuple
()
>>    num='1'
num
'1'
>>    num=('1',)
num
('1',)
>>    num='1','2','3'
>>    num
('1', '2', '3')>>    num='1',
>>    type(num)
<class 'tuple'>## 元组解包
>>    num=('1','2','3')
>>    a,b,c=num
>>    a
'1'
>>    b
'2'## 数组和字符串之间的转换
>>    l=('1','2','3')
l
('1', '2', '3')>>    l=list(l)
l
['1', '2', '3']>>    l=tuple(l)
>>    l
('1', '2', '3')## 元素之间的交换### 方法1
c=0
>>    c=a
>>    a=b
>>    b=c### 方法2
>>    a,b=b,a### 列表原数的替换
>>>    """
"""
'\n\n'
>>>    l=[1,2,3]
l[0]="one">>>    l
['one', 2, 3]>>>    t=([1],[2],[3])
t
([1], [2], [3])>>>    t[0][0]='1'
t
(['1'], [2], [3])

元组中虽然不能存放和添加数据,但是如果里面的元素是空list,可以使用空列比表来append添加元素

>>    t[0][0]='1'
t
(['1'], [2], [3])>>    t=(1,2,3)
>>    t[0]
1>>    y=([],[],[])
y[0].append(0)>>    y
([0], [], [])

  • 函数的使用(function)


### demo1 练习函数
def func_name():pass
func_name()
def get_name(num):if num == 1:return '666'elif num==2:return '888'
print(get_name(1))  ## 666
print(func_name())  ## None### demo2
thing=None
if thing:print('some thing')
else:print('no thing') ### no thing### demo3
thing=None
if thing is None:print('some thing')
else:print('no thing') ### some thing## demo4
def is_none(thing):if thing is None:print('None')elif thing:print('True')else:print('False')is_none(None)
is_none(True)
is_none(False)
is_none(0)## demo5
def name(n1,n2,n3):print(1,n1)print(1,n2)print(1,n3)
name('老大','老二','老三')
name('老二',n2='老大',n3='老三')  ### 这里的默认参数可以不传参(位置参数),但是后面的数字不能将可变参数不能变化### demo6(默认情况下在函数运行时默认值就已经确定下来了)
def name(n2,n3,n1='老大'):print(1,n1)print(1,n2)print(1,n3)
name('老二','老三')## demo7
def box(arg1,result=[]):result.append(arg1)print(result)box('a')
box('b')def box(arg1):result=[]result.append(arg1)print(result)
box('a')
box('b')### demo8(这里none用于值类型初始化,当列表中存在类型元素返回的结果就是false)
def box(arg1,result=None):if result is None:result=[]result.append(arg1)print(result)
box('a')
box('b')## 但你使用的是函数结果是返回值时结果就是false
print(func_name)    ### <function func_name at 0x00000250D4F03E20>
print(func_name())  ### None

http://www.dtcms.com/a/434608.html

相关文章:

  • 可以下载的建站网站河南省建设厅门户网站
  • [创业之路-661]:采集狩猎社会的主要技术、技术产业链以及产要产品
  • 做图文的网站传媒公司名字大全免费
  • 网站开发和游戏开发哪个好网站怎么架设
  • HttpEntity 详解
  • win11电脑设备和打印机中的设备栏,计算机图标有黄色感叹号
  • 做外贸有那些网站平台校园网站策划书
  • 建网站签合同微营销平台系统
  • Go 语言核心知识点
  • Vue 中‘$‘符号含义
  • OSPF协议详解2:链路状态通告(LSA)与邻居关系建立
  • hot100做题整理(11-20)
  • IDEA自动构建与热部署配置
  • 国庆day2
  • Mac添加全局变量
  • 东方美学融合真空保鲜技术,海信璀璨真空头等舱650冰箱发布
  • 网站设计风格分析牡丹江到林口火车时刻表
  • 【操作系统】外存到cpu数据流动路径
  • logits和softmax分布
  • 硬件工程师入门基础知识(九)压敏电阻
  • [Linux]学习笔记系列 -- lib/xarray.c eXtensible Array (XArray) 可扩展数组
  • 基于物理信息神经网络(PINN)求解二维稳态对流-扩散方程的MATLAB实现
  • 物流网站建设可行性分析品牌网站制作网站公司
  • 温州专业微网站制作网络公司建设125摩托车价格及图片
  • 《嵌入式 – GD32开发实战指南(RISC-V版本)》第5章 跳动的心脏-内核TIMER
  • 《嵌入式 – GD32开发实战指南(RISC-V版本)》第7章 定时器
  • 佛山新网站建设平台专业动画制作软件
  • 《WebAssembly指南》第九章:WebAssembly 导入全局字符串常量
  • ​​轻量之选:不依赖宝塔,用 NPM 与命令行部署在线工具箱​
  • RUST 静态生命周期和动态生命周期