python 基础之第四天



例子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 基础之第四天的更多相关文章
- python基础篇(四)
PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...
- Python基础学习(四)
菜鸟咀嚼python基础之继续. 一.返回函数 第三章已经简单操作了Python的高阶函数,目前继续练手函数作为返回值的特效:通常,高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回. 案 ...
- python基础语法(四)
--------------------------------------------接 Python 基础语法(三)---------------------------------------- ...
- python基础学习(四)if判断语句
if判断语句的基本语法 在python中,if判断的格式如下: if 条件: 条件成立时,执行的语句 ...... 注意:代码的缩进要使用一个tab键或者四个空格(建议使用四个空格,tab和空格最好不 ...
- Python基础笔记系列四:工具的安装与配置
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 一开始是没有打算写工具这篇的,后来发现在某些情况下会遇到一些奇怪的问题,这 ...
- Py修行路 python基础 (十四)递归 及 面向对象初识及编程思想
一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策略时,必须有一个明确的递归结束条件 ...
- Python基础(十四)
今日主要内容 装饰器扩展 有参装饰器 多个装饰器装饰一个函数 递归 一.装饰器扩展 (一)含有参数的装饰器 先来回顾一下装饰器的标准模式 def wrapper(fn): def inner(*arg ...
- python基础知识(四)
摘要:主要涉及lambda表达式.python内置函数(open文件重点).冒泡排序 一.lambda表达式 适用于创建简单函数,也叫匿名函数, 函数名 = lambda 参数 : 返回值 funct ...
- Python 基础【第四篇】参数
程序运行避免不了需要一些参数来支持 那么如何让程序接收参数呢?这里先简单的用sys模块的参数 sys.argv[]方法来实现参数获取 1.用法: import sys //导入sys模块后期会详细 ...
- Python基础学习篇章四
一. Python数据类型之字典 1. 键的排序:for循环 由于字典不是序列,因此没有可靠的从左至右的顺序.这就导致当建立一个字典,将它打印出来,它的键也许会以与我们输入时的不同的顺序出现.有时候我 ...
随机推荐
- 017.View与窗口:AttachInfo
每一个View都需要依赖于窗口来显示,而View和窗口的关系则是放在View.AttachInfo中,关于View.AttachInfo的文章少,因为这个是View的内部类而且不是公共的,在应用层用的 ...
- C - The C Answer (2nd Edition) - Exercise 1-16
/* Revise the main routine of the longest-line program so it will correctly print the length of arbi ...
- javascript原生调用摄像头
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...
- Path SumI、II——给出一个数,从根到子的和等于它
I.Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up a ...
- [Maven实战](9)传递性依赖
了解Spring的朋友都知道.创建一个Spring Framework项目都须要依赖什么样的Jar包.假设不使用Maven,那么在项目中就须要手动下载相关的依赖.因为Spring Framework又 ...
- 基于bootstrap的纯静态网站目录
一.博客页面 二.登陆页面 三.信息采集 四.管理后台 五.网站汇总(基于上边四个功能) 因为样式统一采用bootstrap的样式,所以不做介绍 样式导入可以将bootstrap下载至本地(有自动补齐 ...
- Spring Boot中使用RSocket
1. 概述 RSocket应用层协议支持 Reactive Streams语义, 例如:用RSocket作为HTTP的一种替代方案.在本教程中, 我们将看到RSocket用在spring boot中, ...
- [框架安装趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet
[框架安装趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet https://zhuanlan.zhihu.com/p/23480983 天清 9 个月前 写这 ...
- caffe搭建----Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)
原文来源: 来源:Angle_Cal 2016-12-19 17:32 本博主修改于2017-09-12. 版权所有,转载请注明出处. BLVC版本的Caffe-windows已经支持Vis ...
- C# 比较两个数组中的内容是否相同的算法
这里要比较的是两个数组中的内容是否相同,以int数组为例 int[] Arraya=new[] {1,2,3,4,5} int[] Arrayb=new[] {5,3,2,1,4} 以上两个数组内的值 ...