python编码-2
字典
>>> aa={}
>>> aa['wo']=[1,2,3,4]
>>> aa['ni']=[5,6,7,8]
>>> aa['zhang']=[20,'it','jp']
>>> aa['wu']=[30,'hr','cn']
>>> aa
{'wo': [1, 2, 3, 4], 'ni': [5, 6, 7, 8], 'wu': [30, 'hr', 'cn'], 'zhang': [20, 'it', 'jp']}
遍历字典,将字典中的一个元素的key-value对分别打出
>>> for name,info in aa.items():
... print name,info
...
wo [1, 2, 3, 4]
ni [5, 6, 7, 8]
wu [30, 'hr', 'cn']
zhang [20, 'it', 'jp']
打出值(是一个列表)的第一个字段
>>> for name,info in aa.items():
... print name,info[0]
...
wo 1
ni 5
wu 30
zhang 20
遍历字典
>>> name
{'r': 12, 'b': 23}
>>> for k,v in name.items():
... print k,v
...
r 12
b 23
函数
这是第一个函数
[root@kvm1 python]# python fun1.py
hello,wudealex,how are you?
[root@kvm1 python]# cat fun1.py
def sayHi(name):
print "hello,%s,how are you?" %name
n="wudealex"
sayHi(n)
这是第二个函数
[root@kvm1 python]# cat fun2.py
def sayHi(age):
if age >20:
print 'you are too old'
else:
print 'you are a young man' n=int(raw_input('please input your age!!! '))
sayHi(n) 正常情况
[root@kvm1 python]# python fun2.py
please input your age!!! 23
you are too old
[root@kvm1 python]# python fun2.py
please input your age!!! 12
you are a young man 满足了基本功能
但却有三个主要问题
其一输入字符会报错并退出
其二不输入会报错并退出
其三不能循环等待用户输入,一次就退出 [root@kvm1 python]# python fun2.py
please input your age!!! f
Traceback (most recent call last):
File "fun.py", line 7, in <module>
n=int(raw_input('please input your age!!! '))
ValueError: invalid literal for int() with base 10: 'f'
[root@kvm1 python]# python fun2.py
please input your age!!!
Traceback (most recent call last):
File "fun.py", line 7, in <module>
n=int(raw_input('please input your age!!! '))
ValueError: invalid literal for int() with base 10: ''
这是对第二个函数的改进版,解决了存留的bug [root@kvm1 python]# cat fun3.py
def sayHi():
while True:
try:
age=int(raw_input('please input your \033[42;31m age \033[0m!!! '))
break
except ValueError:
print 'please input a \033[46;33m number \033[0m,not string.'
if age >20:
print 'you are a \033[41;32m old \033[0m man '
else:
print 'you are a \033[43;34m young \033[0m man' sayHi()
[root@kvm1 python]# python fun3.py
please input your age!!!
please input a number,not string.
please input your age!!! e
please input a number,not string.
please input your age!!! w
please input a number,not string.
please input your age!!! -
please input a number,not string.
please input your age!!! 12
you are a young man
[root@kvm1 python]# python fun1.py
please input your age!!! 34
you are too old
函数的默认参数,
即c=0
或空c='' import os def sshcmd(a,b,c):
sh= 'ssh %s@%s %s' %(a,b,c)
# print sh
os.system(sh) user='root'
host='192.168.10.103'
cmd='hostname' sshcmd(user,host,cmd)
pickle模块
pickle序列化,不像文件,plk文件不需要转来转去,如果用文件来中转的话,需要遍历字典,还要输出到文件中,读的时候也较麻烦
所以pickle模块提供了一种中间物,方便共享数据。原样存,原样取。便于移植 定义
>>> import tab
>>> import pickle
>>> acc={}
>>> acc['']=['a',15,14]
>>> acc['']=['b',30,40]
>>> acc
{'': ['a', 15, 14], '': ['b', 30, 40]}
>>> f =file('acc.pkl','wb')
>>> pickle.dump(acc,f)
>>> f.close() 假如pickle.dump后,又需要修改某个值,
acc[''][0]='c'
这个时候如果再一次的
pickle.dump(acc,f),那么acc.pkl文件会有两组字典,所以会对load时产生混乱,
所以最好dump一次就close一次,再修改,再打开 取用
>>> pkl_file=open('acc.pkl','rb')
>>> acc_info=pickle.load(pkl_file)
>>> acc_info
{'': ['a', 15, 14], '': ['b', 30, 40]}
re模块
>>> m=re.match(r'ni','ni hao')
>>> print m.group()
ni
>>> m=re.match(r'ii','ni hao')
>>> print m.group()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group' >>> p=re.compile(r'\d+')
>>> print p.split('one1two2three3four4')
['one', 'two', 'three', 'four', '']
>>> p=re.compile(r'\D+')
>>> print p.split('one1two2three3four4')
['', '', '', '', '']
python编码-2的更多相关文章
- (转载) 浅谈python编码处理
最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息. 很快,我就遇到了异常: UnicodeEncodeError: ...
- Python 编码简单说
先说说什么是编码. 编码(encoding)就是把一个字符映射到计算机底层使用的二进制码.编码方案(encoding scheme)规定了字符串是如何编码的. python编码,其实就是对python ...
- Python之路3【知识点】白话Python编码和文件操作
Python文件头部模板 先说个小知识点:如何在创建文件的时候自动添加文件的头部信息! 通过:file--settings 每次都通过file--setings打开设置页面太麻烦了!可以通过:View ...
- python编码规范
python编码规范 文件及目录规范 文件保存为 utf-8 格式. 程序首行必须为编码声明:# -*- coding:utf-8 -*- 文件名全部小写. 代码风格 空格 设置用空格符替换TAB符. ...
- 【转】python编码的问题
摘要: 为了在源代码中支持非ASCII字符,必须在源文件的第一行或者第二行显示地指定编码格式: # coding=utf-8 或者是: #!/usr/bin/python # -*- coding: ...
- 【转】python编码规范
http://blog.csdn.net/willhuo/article/details/49300441 决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是 ...
- python 编码 UnicodeDecodeError
将一个py脚本从Centos转到win运行,出错如下: UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: il ...
- Python编码/文件读取/多线程
Python编码/文件读取/多线程 个人笔记~~记录才有成长 编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...
- 关于Python编码,超诡异的,我也是醉了
Python的编码问题,真是让人醉了.最近碰到的问题还真不少.比如中文文件名.csv .python对外呈现不一致啊,感觉好不公平. 没图说个JB,下面立马上图. 我早些时候的其他脚本,csv都是 ...
- 规范的python编码
规范的 python 编码令人赏心悦目,令代码的表达逻辑更清晰,使得工程代码更容易被维护和交流: 编码规范包括对于代码书写格式的约束,不良语法的禁用和推荐的编码手法,下面做些简要的描述: 1. 代码规 ...
随机推荐
- ThreadLocal的分享
最开始的时候打算自己写点什么,但是看了这些博客以后感觉真的不知道应该写点什么了,全部都是好文章,只做分享了,链接如下: 1.http://www.cnblogs.com/dolphin0520/p/3 ...
- 转:C语言 可变参数
C语言 可变参数 堆栈一般是怎么压栈处理的 /* * stack space: * * 参数3 | up * 参数2 | * 参数1 v ...
- css代码段
css文字超出省略 .demo{ display:-webkit-box; overflow:hidden; text-overflow:ellipsis; -webkit-line-clamp:2; ...
- link和@import的区别
link属于XHTML标签,而@import完全是css提供的一种方式:标签和css样式的区别就不说了,他们起到的作用区别不大,一般建议用link因为简单,@import会对页面载入有影响,影响性能l ...
- CentOS中iptables防火墙 开放80端口方法
开放端口: 代码如下 复制代码 [root@WX32 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 保存配置: 代码如下 复制代码 [root ...
- Linux 下 git连接github的使用
1.安装git sudo apt-get install git 2.创建github帐号 3.Linux创建SSH密钥: ssh-keygen //一直默认 4.将公钥加入到Github账户信息A ...
- Mac下安装Node.js
今天介绍一下Mac下Node.js的下载安装方法,后面我们安装Bootstrap.Angurlar和jQuery等都是通过Node.js的npm方式的. 1.在必应中搜索“node.js mac”,第 ...
- c语言完成分块查找
首先要把一系列数组均匀分成若干块(最后一个可以不均匀) 每块中元素任意排列,即块中数字无序,但是整个块之间要有序.因此也存在局限性. #include<stdio.h> //分块查找法 v ...
- MVC、ORM、CURD、ActiveRecord、单一入口的概念
MVC MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 视图 :视图是用户看到并 ...
- Java学习指南学习笔记
1, Java是一种静态类型.动态绑定的语言.具体来说,每一个对象都是编译时确定的良好类型.同时,可以在运行时检查一个对象究竟是什么. 2, Java中除了基本数字类型之外,Java中所有的对象都是通 ...