python中遇到的小问题

时间:2022-03-10 17:35:27
1.IndentationError: unexpected indent   格式不对

   用vim编辑器,   :1,$s/^I/    /g  把所有的tab 换成4个空格,^I代表空格(按Tab键),:set list可以看到tab                .vimrc 中tabstop表示一个tab显示几个空格

   用gedit, 把没对齐的对齐。


2.python 中出现中文,需在开头加:#encoding:utf-8


3.字典按照value的值从大到小的顺序来排序

sorted()函数详细用法见 "Python中sorted()方法的用法 "
lambda
功能: 创建匿名函数
区别: 和def函数定义,以下两点区别
    * lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符;而def则会把函数对象赋值给一个变量
    * lambda它只是一个表达式,而def则是一个语句

iteritems()
功能: iteritems()以迭代器对象返回字典键值对
区别: 和item相比:items()以列表形式返回字典键值对
e.g: 

dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict

输出的结果:
[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]

注释: 在函数sorted(dic.iteritems(), key = lambda d:d[1])中,第一个参数传给第二个参数“键-键值”,第二个参数取出其中的键([0])或键值(1])


4.python 中的除法

除法:从Python2.2开始,除法运算符除了/之外,又引入了一个除法运算符://,后一种运算符只用于进行整除法。对于除法运算符/,默认时的行为跟Python2.2之前的一样,它视操作数而定,既可以进行整除,也可以进行真除法。如果想让这两个运算符有一个明确的分工,即/只用于真除法,而//仅用于整除法的话,需要作以下声明:
from __future__ import division
保存几位小数,可以用"%.2f" %count


5.pexpect的用法


#!/usr/bin/python
import pexpect

repoinit = pexpect.spawn('repo init -u git@...")
repoinit.expect('Your\s+Name.*')
repoinit.sendline()
repoinit.expect('Your\s+Email.*')
repoinit.sendline()
repoinit.expect('is this.*')
repoinit.sendline('yes')