例子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. Android 中状态栏、标题栏、View的大小及区分

    1.获得状态栏的高度(状态栏相对Window的位置): Rect frame = new Rect(); getWindow().getDecorView().getWindowVisibleDisp ...

  2. 【转载】GitHub中国区前100名到底是什么样的人

    转载了这篇文章: http://www.jianshu.com/p/d29cba7934c9 这篇文章真是太牛了!转载过来涨涨见识,同时好好励志一把.还有,ruanyifeng怎么长那样... 哈 另 ...

  3. xgboost的SparkWithDataFrame版本实现

    再xgboost的源码中有xgboost的SparkWithDataFrame的实现,如下:https://github.com/dmlc/xgboost/tree/master/jvm-packag ...

  4. Git使用笔记01

    本文基本的參考文章链接例如以下所看到的: Pro Git(中文版) Git教程 Git使用教程 简单介绍与说明 Git是一个分布式版本号管理系统,是为了更好地管理Linux内核开发而创立的.Git能够 ...

  5. hdu1034 简单模拟

    这里开一个二维数组.num[105][2];   我也不知道N有多少,随便开的,  那么这里num[i][0] 表示当前 第 i 个人拥有的糖果数,num[i][1]表示他上面一个人分给他的糖果数.详 ...

  6. 程序员必备字体Source Code Pro

    最近捕获一枚,程序员专用字体,很不错. 介绍如下: Source Code Pro 是由大名鼎鼎的 Adobe 公司发布的一款开源免费的等宽编程字体,它非常适合用于显示代码,支持 Linux.Mac ...

  7. C++静态库与动态库深入研究

    什么是库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可以被操 ...

  8. xml文件的根节点layout_width或者layout_height设置无效果的原因分析

    在android开发中相信大家对ListView.GridView等组建都非常熟悉,在使用它们的时候须要自己配置相关的Adapter,而且配置现骨干的xml文件作为ListView等组建的子View, ...

  9. 自定义 spinner

    http://blog.sina.com.cn/s/blog_3e333c4a010151cj.html

  10. eacharts 根据后台数据生成柱状图

    说明:开发环境vs2012 ,asp.net mvc4项目,c#语言 1.效果图 2.HTML 前端代码 <%@ Page Language="C#" AutoEventWi ...