例子1:

打印列表每个元素对应的索引

[root@master script]# vim suoyin.py
#!/usr/bin/python
# coding:utf-8 alist = ['fu','shan','hua','hive'] for i in range(len(alist)):
print '%s:%s' % (i,alist[i]) 检验:
[root@master script]# python suoyin.py
0:fu
1:shan
2:hua
3:hive
另外一种方式:
[root@master script]# vim suoyin.py
#!/usr/bin/python
# coding:utf-8 alist = ['fu','shan','hua','hive'] #for i in range(len(alist)):
# print '%s:%s' % (i,alist[i]) for i in enumerate(alist):
print '%s:%s' %(i[0],i[1]) 检验:
[root@master script]# python suoyin.py
(0, 'fu')
(1, 'shan')
(2, 'hua')
(3, 'hive')

[root@master script]# vim suoyin.py
#!/usr/bin/python
# coding:utf-8

alist = ['fu','shan','hua','hive']

#for i in range(len(alist)):
#  print '%s:%s' % (i,alist[i])

for i in enumerate(alist):
  print '%s:%s' % (i[0],i[1])

检验:

[root@master script]# python suoyin.py
0:fu
1:shan
2:hua
3:hive

还可以:

[root@master script]# vim suoyin.py
#!/usr/bin/python
# coding:utf-8 alist = ['fu','shan','hua','hive'] for m,n in enumerate(alist):
print '%s:%s' % (m,n) 检验:
[root@master script]# python suoyin.py
0:fu
1:shan
2:hua
3:hive

#######列表一些简单用法############

In [10]: alist = [23,10,45,33]

In [11]: reversed(alist)
Out[11]: <listreverseiterator at 0x7f44bd7c3910> In [12]: list(reversed(alist))
Out[12]: [33, 45, 10, 23] In [15]: sorted(alist) #从小到大,升序
Out[15]: [10, 23, 33, 45]

In [16]: list(reversed(sorted(alist)))      #降序排列
  Out[16]: [45, 33, 23, 10]

或者:

In [18]: sorted(alist)[::-1]

Out[18]: [45, 33, 23, 10]

##########字符串格式化############

In [19]: '%10s%s' % ('name','fush')     ##'%10s' 右对齐,占是个字符,不够的用空格补上;默认右对齐
Out[19]: ' namefush' In [20]: '%10s %s' % ('name','fush')
Out[20]: ' name fush' In [21]: '%-10s %s' % ('name','fush') ##'%-10s' 左对齐,占是个字符,不够的用空格补上

Out[21]: 'name      fush'

还有一种不常用的用法:

 In [22]: '%*s %*s' % (-20,'name',-8,'fush')    ##在s前面用*号,在后面用数字代替
Out[22]: 'name fush '

格式化案例:

 [root@master script]# vim  huamian.py
#!/usr/bin/python
# coding:utf-8 def get_content():
contents = []
while True:
data = raw_input('<Enter to quit>: ')
contents.append(data)
if not data:
break
return contents if __name__ == '__main__':
width = 48
lines = get_content()
lines.pop()
print '+%s+' % ('#' * width)
for line in lines:
if not len(line)%2:
sp_width = (width -len(line)) / 2
print '+%s%s%s+' % (' ' * sp_width,line,' ' * sp_width)
else:
sp_width = (width -len(line)) / 2
print '+%s%s%s +' % (' ' * sp_width,line,' ' * sp_width)
print '+%s+' % ('#' * width)

改进版:

 #!/usr/bin/python
# coding:utf-8 def get_content():
contents = []
while True:
data = raw_input('<Enter to quit>: ')
if not data:
break
contents.append(data)
return contents if __name__ == '__main__':
width = 48
lines = get_content()
print '+%s+' % ('#' * width)
for line in lines:
sp_width , extra = divmod((width -len(line)),2)
print '+%s%s%s+' % (' ' * sp_width,line,' ' * (sp_width + extra))
print '+%s+' % ('#' * width)
备注:num1,num2 = divmod(10,2)
num1 = 10/2 的商
num2 = 10/2 的余数
奇数/2 的余数(num2=1)
偶数/2 的余数(num2=0)

验证效果:

 [root@master script]# python  huamian.py
<Enter to quit>: hello
<Enter to quit>: world!
<Enter to quit>:
+################################################+
+ hello +
+ world! +
+################################################+

##########另外一种格式化#############

 >>> import string
>>> data = 'hello $name,I will see you $day'
>>> t = string.Template(data)
>>> t.substitute(name='tony',day='afternoon')
'hello tony,I will see you afternoon'
>>> t.substitute(name='herry',day='afternoon')
'hello herry,I will see you afternoon'

###########添加用户和密码以及发邮件通知案例#############

首先编写一个获取随机密码的文件:

 #!/usr/bin/python
# coding:utf-8 import string
import random
import sys def get_pass():
pwd = ''
for i in range(8):
char = random.choice(string.lowercase + string.uppercase + string.digits)
pwd += char
return pwd
if __name__ == '__main__':
print get_pass()

正式文件代码:

[root@master script]# cat adduser.py
#!/usr/bin/python
# coding:utf-8 import sys
import os
import ranpass
import string contents = """username: ${username}
password: ${password} """ t = string.Template(contents) def adduser(user,pwd,email):
data = t.substitute(username =user,password = pwd)
os.system('useradd %s' % username)
os.system('echo %s |passwd --stdin %s' % (pwd,username))
os.system('echo -e "%s" |mail -s "user info" %s' % (data,email)) if __name__ == '__main__':
username = sys.argv[1]
pwd = ranpass.get_pass()
adduser(username,pwd,'root@localhost')

检验:

[root@master script]# chmod +x adduser.py
[root@master script]# ./adduser.py tiantian
useradd: user 'tiantian' already exists
Changing password for user tiantian.
passwd: all authentication tokens updated successfully.
[root@master script]# cat /var/spool/mail/root |more From root@master.localdomain Fri Aug ::
Return-Path: <root@master.localdomain>
X-Original-To: root@localhost
Delivered-To: root@localhost.localdomain
Received: by master.localdomain (Postfix, from userid )
id 844AE22CD3; Fri, Aug :: + (CST)
Date: Fri, Aug :: +
To: root@localhost.localdomain
Subject: user info
User-Agent: Heirloom mailx 12.4 //
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <.844AE22CD3@master.localdomain>
From: root@master.localdomain (root) username: tiantian
password: GJh4t646 [root@master script]# mail
Heirloom Mail version 12.4 //. Type ? for help.
"/var/spool/mail/root": message new
>N root Fri Aug : / "user info"
&
Message :
From root@master.localdomain Fri Aug ::
Return-Path: <root@master.localdomain>
X-Original-To: root@localhost
Delivered-To: root@localhost.localdomain
Date: Fri, Aug :: +
To: root@localhost.localdomain
Subject: user info
User-Agent: Heirloom mailx 12.4 //
Content-Type: text/plain; charset=us-ascii
From: root@master.localdomain (root)
Status: R username: tiantian
password: GJh4t646 &

python 基础之第四天的更多相关文章

  1. python基础篇(四)

    PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...

  2. Python基础学习(四)

    菜鸟咀嚼python基础之继续. 一.返回函数 第三章已经简单操作了Python的高阶函数,目前继续练手函数作为返回值的特效:通常,高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回. 案 ...

  3. python基础语法(四)

    --------------------------------------------接 Python 基础语法(三)---------------------------------------- ...

  4. python基础学习(四)if判断语句

    if判断语句的基本语法 在python中,if判断的格式如下: if 条件: 条件成立时,执行的语句 ...... 注意:代码的缩进要使用一个tab键或者四个空格(建议使用四个空格,tab和空格最好不 ...

  5. Python基础笔记系列四:工具的安装与配置

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 一开始是没有打算写工具这篇的,后来发现在某些情况下会遇到一些奇怪的问题,这 ...

  6. Py修行路 python基础 (十四)递归 及 面向对象初识及编程思想

    一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策略时,必须有一个明确的递归结束条件 ...

  7. Python基础(十四)

    今日主要内容 装饰器扩展 有参装饰器 多个装饰器装饰一个函数 递归 一.装饰器扩展 (一)含有参数的装饰器 先来回顾一下装饰器的标准模式 def wrapper(fn): def inner(*arg ...

  8. python基础知识(四)

    摘要:主要涉及lambda表达式.python内置函数(open文件重点).冒泡排序 一.lambda表达式 适用于创建简单函数,也叫匿名函数, 函数名 = lambda 参数 : 返回值 funct ...

  9. Python 基础【第四篇】参数

    程序运行避免不了需要一些参数来支持 那么如何让程序接收参数呢?这里先简单的用sys模块的参数 sys.argv[]方法来实现参数获取 1.用法: import sys   //导入sys模块后期会详细 ...

  10. Python基础学习篇章四

    一. Python数据类型之字典 1. 键的排序:for循环 由于字典不是序列,因此没有可靠的从左至右的顺序.这就导致当建立一个字典,将它打印出来,它的键也许会以与我们输入时的不同的顺序出现.有时候我 ...

随机推荐

  1. 转帖:HttpStatusCode状态说明C#版

    Continue 等效于 HTTP 状态 100.Continue 指示客户端可能继续其请求. SwitchingProtocols 等效于 HTTP 状态 101.SwitchingProtocol ...

  2. UVA - 1416 Warfare And Logistics (最短路)

    Description The army of United Nations launched a new wave of air strikes on terroristforces. The ob ...

  3. vue2.0 自定义指令

    Vue指令 Vue的指令以v-开头,作用在HTML元素上,将指令绑定在元素上,给绑定的元素添加一些特殊行为. 例如: <h1 v-if="yes">Yes</h1 ...

  4. 分享ArcGIS Server 10.0修复安装心得

    最近,捣腾了一阵子在xp系统上安装ArcGIS Server10.0(下方均简称server),解决了一些初学者可能面临的problem,给大家贴出来, 希望能够给初学者一些有益的帮助. 我的系统环境 ...

  5. solaris用户与文件权限管理

    此文章已于 20:45:28 2015/3/22 重新发布到 zhuxuekui3 solaris用户与文件权限管理1 类别    「网站分类」Oracle 一.用户与用户组管理 三种用户:超级用户. ...

  6. python(23)- 面向对象简单介绍

    面向概述 面向过程:根据业务逻辑从上到下写垒代码 面向过程的设计的核心是过程,过程即解决问题的步骤, 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西 优点:极大降低了程序的复杂 ...

  7. Excel应用----制作二级下拉菜单【转】

    应用: 原始数据源是两列的源数据,那该如何制作二级下拉菜单, 当然可以将这两列的数据源,转换成上面的那种格式,再用上面的方法来制作. 今天教大学的方法是直接通过这种两列式的数据源来制作下拉菜单,如果A ...

  8. eclipse如何查问题?

    问题:从SVN上拉了一个项目,莫名奇妙就报错?看着就很纠结 解决之道:在Window下拉菜单show View 找到Problems 就可以查到具体的原因,我的这个是需要添加一个tomcat服务器

  9. 关于TIME_WAIT状态

    前言 为何TCP ”四次分手“ 的过程中会有一个TIME_WAIT状态?这个状态有什么意义呢?这是网络中的一个经典问题,本文将给出精简的回答. 什么是TIME_WAIT状态 这是TCP通信协议中出现的 ...

  10. EasyPusher安卓Android手机直播推送之RTSP流媒体协议流程

    EasyPusher移动端推送同我们平时用的RTSP直播推送流程一样,都是采用标准RTSP/RTP推送流程:ANNOUNCE->SETUP->PLAY->RTP/RTCP->T ...