Python语法结构(二)

2023-05-16

系统管理模块

#shutil模块
        shutil.copyfileobj(fsrc,fdst[,length])
             将类似文件的对象fsrc的内容复制到类似文件的对象fdst  

#拷贝文件对象
		>>> import shutil
		>>> f1 = open('/bin/touch','rb')
		>>> f2 = open('/tmp/touch','wb')
		>>> shutil.copyfileobj(f1,f2)
		>>> f1.close()
		>>> f2.close()
		>>> 
		(nsd1905) [root@localhost day04]# md5sum /bin/touch /tmp/touch 
		42a30752aa6ef51fb39cd8ff59a8cfb1  /bin/touch
		42a30752aa6ef51fb39cd8ff59a8cfb1  /tmp/touch

shutil.copyfile(src,dst,*,follow_symlinks=Ture)
            将名为src的文件的内容(无元数据)复制到名为dst的文件,然后返回dst 

#拷贝文件内容				
		>>> import shutil
		>>> shutil.copyfile('/etc/motd','/tmp/motd')
		'/tmp/motd'
		(nsd1905) [root@localhost day04]# md5sum /etc/motd /tmp/motd 
		d41d8cd98f00b204e9800998ecf8427e  /etc/motd
		d41d8cd98f00b204e9800998ecf8427e  /tmp/motd

# 拷贝目录,记住
	>>> shutil.copytree('/etc/security', '/var/tmp/anquan')

# 删除目录,记住
	>>> shutil.rmtree('/var/tmp/anquan')

# 改变属主、属组,记住
	>>> shutil.chown('/etc/motd', user='bob', group='bob')
# 移动,记住
	>>> shutil.move('/tmp/motd', '/var/tmp/')					
				

### subprocess模块

    - 用于执行系统命令

>>> import subprocess
		# 在shell环境中执行ls ~
		>>> subprocess.run('ls ~', shell=True)
		>>> subprocess.run('id root', shell=True)

		# 将输出和错误保存到result中
		>>> result = subprocess.run('id root', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
		>>> result.returncode   # 相当于$?
		0
		>>> result.stdout  # 查看标准输出
		b'uid=0(root) gid=0(root) \xe7\xbb\x84=0(root)\n'
		>>> result.stdout.decode()  # 将bytes转为str
		'uid=0(root) gid=0(root) 组=0(root)\n'

		>>> result = subprocess.run('id zhaoliu', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
		>>> result.stderr
		b'id: zhaoliu: no such user\n'
		>>> result.returncode
		1

 ##模块布局

#!/root/www/bin/python     # 解释器位置
"""文档字符串

在help查看时,能够看到的模块说明
"""

# 模块导入
import os
import string

# 全局变量定义
all_chs = string.ascii_letters + string.digits

# 类的定义
class MyClass:
    pass

# 函数定义
def func1():
    pass

# 主程序代码
if __name__ == '__main__':
    mc = MyClass()
    func1()

 ##序列对象

>>> list('abc')   #list函数将对象转为列表
['a', 'b', 'c']

>>> tuple('abc')    #tuple函数将对象转为元组
('a', 'b', 'c')

# reversed函数用反转序列对象
>>> from random import randint
>>> nums = [randint(1, 100) for i in range(10)]
>>> nums
[1, 30, 79, 99, 39, 61, 96, 36, 48, 42]
>>> reversed(nums)
<list_reverseiterator object at 0x7f4b34134c50>
>>> for i in reversed(nums):
...   print(i)
>>> list(reversed(nums))
[42, 48, 36, 96, 61, 39, 99, 79, 30, 1]
>>> nums   # nums本身不会改变
[1, 30, 79, 99, 39, 61, 96, 36, 48, 42]


# sorted用于排序
>>> sorted(nums)  # 默认升序排列
[1, 30, 36, 39, 42, 48, 61, 79, 96, 99]
>>> sorted(nums, reverse=True)  # 降序排列
[99, 96, 79, 61, 48, 42, 39, 36, 30, 1]

# enumerate函数可以同时得到序列对象的下标和值
for ind, num in enumerate(nums):
    print(ind, num)

##字符串格式化操作符

>>> '%s is %s years old' % ('bob', 20)
		'bob is 20 years old'
>>> '%s is %d years old' % ('bob', 20)
		'bob is 20 years old'
>>> '5 / 3 = %d' % (5 / 3)  # %d: 10进制整数
		'5 / 3 = 1'
>>> '5 / 3 = %f' % (5 / 3)  # %f: 浮点数
		'5 / 3 = 1.666667'
>>> '5 / 3 = %5.2f' % (5 / 3)  # %5.2f:共5列,小数点2位,空格也站位
		'5 / 3 =  1.67'

>>> '%8s%5s' % ('name', 'age')  # %8s: 占8列,右对齐
		'    name  age'
>>> '%8s%5s' % ('bob', 20)
		'     bob   20'
>>> '%-8s%-5s' % ('name', 'age')  # 负数表示左对齐
		'name    age  '
>>> '%-8s%-5s' % ('bob', 20)
		'bob     20   '	
				

### 字符串方法

>>> s1 = '1234'  #先赋值变量,如果写字符串按tab没有提示
>>> s2 = '12a34'

>>> s1.            #输入变量,按两下tab
s1.capitalize(    s1.isalnum(       s1.join(          s1.rsplit(
s1.casefold(      s1.isalpha(       s1.ljust(         s1.rstrip(
s1.center(        s1.isdecimal(     s1.lower(         s1.split(
s1.count(         s1.isdigit(       s1.lstrip(        s1.splitlines(
s1.encode(        s1.isidentifier(  s1.maketrans(     s1.startswith(
s1.endswith(      s1.islower(       s1.partition(     s1.strip(            #删除空白字符
s1.expandtabs(    s1.isnumeric(     s1.replace(       s1.swapcase(
s1.find(          s1.isprintable(   s1.rfind(         s1.title(
s1.format(        s1.isspace(       s1.rindex(        s1.translate(
s1.format_map(    s1.istitle(       s1.rjust(         s1.upper(            #小写转大写
s1.index(         s1.isupper(       s1.rpartition(    s1.zfill(
>>> s1.

 字符串练习

# 字符串方法
>>> s1.center(30)  # 居中
'             1234             '
>>> s1.center(30, '*')   # 居中,两边用*号填充
'*************1234*************'
>>> s1.ljust(30, '#')  # 左对齐
'1234##########################'
>>> s1.rjust(30, '@')  # 右对齐
'@@@@@@@@@@@@@@@@@@@@@@@@@@1234'
>>> '  \thello world.\n'.strip()  # 移除两端空白字符
'hello world.'
>>> '  \thello world.\n'.lstrip()  # 移除左端空白字符
'hello world.\n'
>>> '  \thello world.\n'.rstrip()  # 移除右端空白字符
'  \thello world.'
>>> s3 = 'abc'
>>> s3.upper()  # 转成大写
'ABC'
>>> 'HELLO WORLD'.lower()  # 转成小写
'hello world'

>>> s1
'1234'
>>> s1.islower()  # 有字母,并且是小写为True
False
>>> s2
'12a34'
>>> s2.islower()  # 有字母,并且是小写为True
True
>>> 'HAO123'.isupper()  # 字母是大写的
True
>>> s1.isdigit()  # 所有字符全部为数字
True
>>> s2.isdigit()
False
>>> 'Hao'.isalpha()  # 字符全为字母
True
>>> 'Hao123'.isalpha()
False
>>> 'Hao123'.isalnum()  # 字符全部为字母或数字
True
>>> 'Hao123'.startswith('Hao')  # 字符串以Hao开头吗?
True
>>> 'Hao123'.endswith('ab')  # 字符串以ab结尾吗?
False
>>> 'hao 123 abc'.split()   # 切分字符串
['hao', '123', 'abc']
>>> 'hao-123-abc'.split()
['hao-123-abc']
>>> 'hao-123-abc'.split('-')  # 以-为分隔符,切分字符串
['hao', '123', 'abc']
>>> s1.replace('12', 'abcd')  # 替换
'abcd34'

 

## 列表

- 列表属于容器、可变、序列

>>> alist = [13,2,356,23]
>>> alist[-1] = 100            #修改列表
>>> alist
[13, 2, 356, 100]
>>> alist[1:3]
[2, 356]
>>> alist[1:3] = [ 10,20,30]        #按下标修改,可修改多个
>>> alist
[13, 10, 20, 30, 100]
>>> alist.                    ##列表方法
alist.append(   alist.count(    alist.insert(   alist.reverse(
alist.clear(    alist.extend(   alist.pop(      alist.sort(
alist.copy(     alist.index(    alist.remove(   
>>> alist.

列表方法

方法描述
append()追加,在列表的末尾添加一个元素
clear ()删除列表中的所有元素
copy ()复制列表,将列表中的值赋值给另一个变量
count ()返回具有指定值得元素数量
extent ()将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index ()返回具有指定值得第一个元素的索引
insert ()在指定位置添加元素
pop ()删除指定位置的元素
remove ()颠倒列表的顺序
sort ()对列表进行排序

 

 

 

 

 

 

 

 

 

 

 

按顺序应用

>>> alist.append(200)            #追加到列表最后
>>> alist
[13, 10, 20, 30, 100, 200]


>>> alist.clear()    #清除
>>> alist
[]


>>> a = alist.copy()   ##返回列表副本
>>> a
[13, 2, 356, 23]
>>> alist
[13, 2, 356, 23]

>>> alist[1:3]= [2,2,2,2]  #添加多个重复元素
>>> alist
[13, 2, 2, 2, 2, 23]
>>> s=alist.count(2)        #统计指定值出现次数
>>> s
4

>>> a = (1,2,3,4,5)
>>> alist = ['a','b','c']
>>> alist
['a', 'b', 'c']
>>> alist.extend(a)      #将元组添加到alist列表,在末尾添加
>>> alist
['a', 'b', 'c', 1, 2, 3, 4, 5]

>>> a  = ['s','d','e']     
>>> alist.extend(a)      #同为列表也可以追加 
>>> alist
['a', 'b', 'c', 1, 2, 3, 4, 5, 's', 'd', 'e']


>>> alist
['a', 'b', 'c', 1, 2, 3, 4, 5, 's', 'd', 'e'] 
>>> a = alist.index(1)    #返回指定值首次出现的位置
>>> a
3


>>> alist= ['sougou','Google','taobao'] 
>>> alist.in
>>> alist.insert(1,'baidu')      #在指定位置拆入元素
>>> alist
['sougou', 'baidu', 'Google', 'taobao']


>>> alist
['sougou', 'baidu', 'Google', 'taobao']
>>> a = alist.pop(1)            #  删除指定位置的元素
>>> alist
['sougou', 'Google', 'taobao']


>>> alist.remove('taobao')        #删除列表中的某个元素
>>> alist
['sougou', 'Google']


>>> alist = [0 + i for i in range(1,11)]   #列表解析
>>> alist
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]   
>>> alist.reverse()                    #倒序排序
>>> alist
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]


>>> alist.sort()                    #排序
>>> alist
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

基础知识借鉴网址

https://www.w3school.com.cn/python/python_ref_list.asp

https://www.runoob.com/python3/python3-list.html 

#元组

元组是容器, 不可变,顺序

元组相当于是静态的列表

>>> atu=(10,35,45,1,5)
>>> atu.
atu.count(  atu.index(  
>>> atu.count(1)            #统计出现次数
1
>>> atu.index(1)            #返回数值1的下标
3

 

## 字典

- 字典属于容器、可变、映射类型
- 字典的key不能重复,value可重复
- 字典的key必须是不可变对象

>>> adic = dict(['ab',['name','bob'],('age',20)])
>>> adic
{'a': 'b', 'name': 'bob', 'age': 20}

>>> sdic = {}.fromkeys(['bob','lili','zs','dc'],20)
>>> sdic
{'bob': 20, 'lili': 20, 'zs': 20, 'dc': 20}
>>> 

字典遍历方法

>>> adic
{'a': 'b', 'name': 'bob', 'age': 20}
>>> for key in adic:
...     print(key,adic[key])
... 
a b
name bob
age 20
>>> '%s is %s year old' %(adic['name'],adic['age'])
'bob is 20 year old'
>>> '%(name)s is %(age)s years old' % adic
'bob is 20 years old'

更新字典

# 更新字典。字典中有key为修改,没有为添加
>>> adict['email'] = 'bob@tedu.cn'
>>> adict['age'] = 22

# 判断字典有没有某个key
>>> 'email' in adict
True
>>> 22 in adict
False

### 字典的方法

方法描述
get ()取出value。key不存在,默认返回None,value不存在,返回指定值
keys()返回所有的key,可以使用 list() 来转换为列表
values()返回所有的value,可以使用 list() 来转换为列表
items()返回(key, val)组成的列表
pop('a')弹出key为a的项目
popitem()弹出某个项目
update()合并字典

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python语法结构(二) 的相关文章

  • 重定向

    重定向简介 计算机最基础的功能是可以提供输入输出操作 对于Linux系统来说 xff0c 通常以键盘为默认输入设备 xff0c 又称标准输入设备 xff1b 以显示器为默认的输出设备 xff0c 又称标准输出设备 所谓重定向 xff0c 就
  • Canon imageRUNNER 2525i打印机驱动通过IP地址进行安装

    环境 打印机IP xff1a 192 168 140 251 本机IP xff1a 192 168 141 210 操作 一 下载驱动 方法一 xff1a 佳能ir 2525i驱动下载地址 xff1a https pdisp01 c wss
  • 防火墙firewalld

    RHEL7中有几种防火墙共存 xff1a firewalld iptables ebtables等 基于iptables的防火墙默认不启动 xff0c 但仍然可以继续使用 RHEL7默认使用firewalld作为防火墙 xff0c 管理工具
  • redis报错Unrecoverable error: corrupted cluster config file.

    系统因为做物理硬件迁移硬重启了一次 在启动redis时出现了一下问题 xff1a 启动脚本 xff1a 运行启动脚本 xff1a 提示正在运行但是没有进程出现 在redis conf中将daemonize yes设置为daemonize n
  • vcenter开机报错activating swap-devices in /etc/fstab

    问题 xff1a 昨天IDC机房一台存储断电了 xff0c 恰巧vcenter在这台存储上 xff0c 重启存储后再重启vcenter报了以下错误 xff1a 参考文档 xff1a https www virtualizestuff com
  • IDEA Git 分支branch操作,新建和合并

    简单记录IDEA中Git分支操作 1 xff1a 创建分支 右下角new branch创建分支 创建完成查看右下角当前分支情况 创建一个该分支的MD文件信息 xff0c 进行提交 这样一个分支就创建完成 xff0c 然后merge分支 xf
  • KVM 介绍(1):简介及安装

    转载地址 xff1a http www cnblogs com sammyliu p 4543110 html KVM 介绍 xff08 1 xff09 xff1a 简介及安装 学习 KVM 的系列文章 xff1a xff08 1 xff0
  • 个人面试经验总结

    1 xff0c 海投 2 xff0c 一定要强调自己能留到该地 xff08 这个城市 这个公司 xff09 发展 3 xff0c 简历上出现的技能和项目面试前一天一定要复习 xff0c 因为面试官大部分问题会以简历为主 4 xff0c 要有
  • Java学习笔记4(设计模式、接口)

    设计模式 建造者模式 在类中 xff0c 定义一个静态内部类作为 外部类的 建造者在建造者类中 xff0c 提供多个 方法用来完成 外部类 对象的属性赋值在建造者类中 xff0c 提供一个 build 用来返回一个外部类的对象在类中 xff
  • R语言单因素/多因素 Logistic回归

    变量因子的转换 gt 单因素logistic回归 gt 多因素logistic回归 https mp weixin qq com s NowePGv6DF9 dF4blSyzVQ 两个模型的比较 构造测试集 xff0c 预测概率 xff0c
  • 那一年读过的技术经典书

    转载请注明 xff1a http blog csdn net xinzhangyanxiang article details 10199757 大学刚毕业 xff0c 总结起来读过的书并不算多 xff0c 而且主要集中在大四的时期读的 x
  • Bert: 双向预训练+微调

    最近要开始使用Transformer去做一些事情了 xff0c 特地把与此相关的知识点记录下来 xff0c 构建相关的 完整的知识结构体系 以下是要写的文章 xff0c 文章大部分都发布在公众号 雨石记 上 xff0c 欢迎关注公众号获取最
  • Federated Learning: 问题与优化算法

    工作原因 xff0c 听到和使用Federated Learning框架很多 xff0c 但是对框架内的算法和架构了解不够细致 xff0c 特读论文以记之 这个系列计划要写的文章包括 xff1a Federated Learning 问题与
  • DIN: 阿里点击率预估之深度兴趣网络

    广告推荐算法系列文章 xff1a 莫比乌斯 百度的下一代query ad匹配算法百度凤巢分布式层次GPU参数服务器架构DIN 阿里点击率预估之深度兴趣网络DIEN 阿里点击率预估之深度兴趣进化网络 本文的知识点来源于参考文献 1 xff0c
  • DIEN: 阿里点击率预估之深度兴趣进化网络

    广告推荐算法系列文章 xff1a 莫比乌斯 百度的下一代query ad匹配算法百度凤巢分布式层次GPU参数服务器架构DIN 阿里点击率预估之深度兴趣网络基于Delaunay图的快速最大内积搜索算法DIEN 阿里点击率预估之深度兴趣进化网络
  • 概率矩阵分解模型 PMF

    本文是论文 一种结合推荐对象间关联关系的社会化推荐算法 的笔记 xff08 上 xff09 因为对其中的概率矩阵分解 Probabilistic Matrix Factorization PMF 不够了解 xff0c 因而我先去脑补了PMF
  • 卷积神经网络

    卷积神经网络 转载请注明 xff1a http blog csdn net stdcoutzyx article details 41596663 自今年七月份以来 xff0c 一直在实验室负责卷积神经网络 xff08 Convolutio
  • DeepID人脸识别算法之三代

    DeepID人脸识别算法之三代 转载请注明 xff1a http blog csdn net stdcoutzyx article details 42091205 DeepID xff0c 目前最强人脸识别算法 xff0c 已经三代 如今
  • 理解dropout

    理解dropout 开篇明义 xff0c dropout是指在深度学习网络的训练过程中 xff0c 对于神经网络单元 xff0c 按照一定的概率将其暂时从网络中丢弃 注意是暂时 xff0c 对于随机梯度下降来说 xff0c 由于是随机丢弃
  • MYSQL— perror 错误码详情

    root 64 localhost cat test nothread py import paramiko import threading import os def ssh2 ip username passwd cmd file p

随机推荐

  • 深度卷积对抗生成网络(DCGAN)

    本文是参考文献 1 的论文笔记 卷积神经网络在有监督学习中的各项任务上都有很好的表现 xff0c 但在无监督学习领域 xff0c 却比较少 本文介绍的算法将有监督学习中的CNN和无监督学习中的GAN结合到了一起 在非CNN条件下 xff0c
  • 看图说话——CNN和LSTM的联合应用

    看图说话是深度学习波及的领域之一 其基本思想是利用卷积神经网络来做图像的特征提取 xff0c 利用LSTM来生成描述 但这算是深度学习中热门的两大模型为数不多的联合应用了 本文是参考文献 1 的笔记 xff0c 论文是比较早的论文 xff0
  • 机器学习经典书籍小结

    机器学习经典书籍小结 转载本博客请注明链接 xff1a http blog csdn net xinzhangyanxiang article details 9069045 博客第一篇文章 1 是转载的 xff0c 也算是开始写博客不经意
  • (一)Tensorflow图像数据转化TFRecord数据格式

    1 TFRecord数据格式 Tensorflow提供的TFRecord文件数据是通过tf train Example Protocol Buffer的格式存储的 数据格式 message Example Features features
  • 【26】Gson原理

    xff08 1 xff09 一个人只要自己不放弃自己 xff0c 整个世界也不会放弃你 xff08 2 xff09 天生我才必有大用 xff08 3 xff09 不能忍受学习之苦就一定要忍受生活之苦 xff0c 这是多么痛苦而深刻的领悟 x
  • Failed to load plugin html: Cannot find module 'eslint-plugin-html'

    npm install save dev eslint plugin html
  • 在 Windows 中启用自动登录功能

    在 Windows 中启用自动登录功能 本文介绍了如何通过将密码和其他相关信息存储在注册表数据库中以配置 Windows 自动执行登录过程 通过使用此功能 xff0c 其他用户可以启动您的计算机并使用您建立的帐户自动登录 为了方便起见 xf
  • Statement与PreparedStatement的区别理解记录

    一 PreparedStatement性能高于Statement xff08 PreparedStatement xff09 属于预编译 xff08 缓存 xff09 xff0c 那怎么预编译的呢 xff0c 源码对比 Statement创
  • Apache CXF文件目录结构及需要jar包

    原文地址 xff1a http blog 163 com a13151055695 64 126 blog static 112087074201143014443273 文件目录结构及相关文件的详细说明 xff1a bin xff08 目
  • 浅析SAX,DOM,JAXP,JDOM与DOM4J之间的关系

    众所周知 xff0c SAX与DOM是JAVA中两大核心XML解析API类库 xff0c 而JAXP JDOM与DOM4J都是基于这两大核心API而衍生出来的 今日兴起看了看相关资料 xff0c 在这里总结总结 SAX与DOM 首先需要说明
  • ctags常用命令(个人整理)

    http blog csdn net myth liu article details 5672572 http chaojimake com 724 html 熟练的使用ctags仅需记住下面几条命 1 ctags languages 6
  • StAX-基于流的拉式XML解析

    最近在学习webservice时 xff0c 发现很多框架 xff0c 技术都在使用StAX作为底层XML解析工具 xff0c 于是今天看了看资料 xff0c 简单学习了下 xff0c 在这里做个总结 简介 StAX xff0c 全称 St
  • Apache HttpClient4.2入门

    介绍 HttpClient 是 Apache Jakarta Common 下的子项目 xff0c 用来提供高效的 最新的 功能丰富的支持 HTTP 协议的客户端编程工具包 xff0c 并且它支持 HTTP 协议最新的版本和建议 HttpC
  • JMX “javax.management.NotCompliantMBeanException” 异常解决

    原文章 xff1a http lovespss blog 51cto com 1907593 616403 昨天同事在JBoss中部署MBean时一直报错 xff1a Caused by javax management NotCompli
  • webservice-WSDL结构与各元素解析

    承接上一遍webservice初识 xff0c 这篇文章将着重于WSDL wsdl协议说明http www w3 org TR wsdl 结构 现在开始说说wsdl的结构以及各个元素的意义 从下面这张图可以看出wsdl中各元素是存在嵌套的关
  • 如何创建KVM后端盘

    在一台图形化虚拟机有KVM的虚拟机上创建后端盘 kvm虚拟化存储目录 cd var lib libvirt images 创建img文件 qemu img create f qcow2 node img 10G qemu img info
  • ansible-文献资料

    ansible文献资料具体请参见官方文档 xff1a http docs ansible com playbooks loops html
  • python语法结构(一)

    python完全靠缩进表达代码逻辑 顶层代码必须顶头写 xff0c 不能有任何空格 某个代码的子代码 xff0c 必须有缩进 xff0c 缩进多少都可以 xff0c 最好是4个空格 root nsd1905 bin python print
  • 关于pycharm中无法输入中文问题

    在centos中pycharm无法输入中文 xff0c 只能输入字符串 借鉴了几个其它文章问题终于解决 方法一 xff1a 更改输入源 首先查看是否安装ibus包 xff0c 如果没安装需要先安装 ibus table 1 5 0 5 el
  • Python语法结构(二)

    系统管理模块 shutil模块 shutil copyfileobj fsrc fdst length 将类似文件的对象fsrc的内容复制到类似文件的对象fdst 拷贝文件对象 gt gt gt import shutil gt gt gt