例子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. JavaScript中的Math方法演示

    <html> <head> <script type="text/javascript"> var num = 12.4; alert(Math ...

  2. NN优化方法对照:梯度下降、随机梯度下降和批量梯度下降

    1.前言 这几种方法呢都是在求最优解中常常出现的方法,主要是应用迭代的思想来逼近.在梯度下降算法中.都是环绕下面这个式子展开: 当中在上面的式子中hθ(x)代表.输入为x的时候的其当时θ參数下的输出值 ...

  3. npm 更新镜像安装Appium

    npm -g --registry http://registry.cnpmjs.org install appium

  4. AngularJS的ng-repeat显示属性名和属性值

    代码下载:https://files.cnblogs.com/files/xiandedanteng/AngularJSAuthorRepeat.rar 代码: <!DOCTYPE HTML P ...

  5. 【Python】输出程序运行的百分比

    对于一些大型的Python程序.我们须要在命令行输出其百分比,显得更加友好,以免被人误会程序陷入死循环.假死的窗口. 关键是利用到不换行的输出符\r,\r的输出.将直接覆盖掉此行的内容. 比方例如以下 ...

  6. python 调用函数时使用星号 *, **

    python 调用函数时使用星号 *, ** 调用函数时使用星号 * 或 ** test(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去.如果 args 等于 (1 ...

  7. 安卓UI适配限定符

    引言 对于程序在不同尺寸的Android机器上执行,对UI的适用性造成了额外的开销,只是限定符的出现,非常方便的攻克了这个问题.通过创建限定符相关的文件夹来解决资源的载入. 限定符用处 限定符(mdp ...

  8. Android Studio 工程的 .gitignore

    新建一个 Android Studio 工程时会默认建立两个 .gitignore 文件 .gitignore *.iml .gradle /local.properties /.idea/works ...

  9. 版本控制器 git

    摘要:版本控制器是码农必备的工具,很多常用的,像svn,git,cvs等,工作中用过svn,Tortoisehg,firefly,其实大同小异,现在简单介绍下git,以及它的一些常用命令. 在wind ...

  10. React Native 学习(三)之 FlexBox 布局

    React Native 学习(三)之 FlexBox 布局