No module named ‘flask.ext’

在学习flask的时候比着书上的代码敲的,运行时却显示没有此模块。看了书本也是Python3的运行环境啊,从网上百度一下,也是个共性的问题。

解决方案:

原先:from flask.ext.bootstrap import Bootstrap

改为:from flask_bootstrap import Bootstrap。即可

原链接:https://blog.csdn.net/wpr13005655989/article/details/80357225

Python 3.5 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示

代码都是照着书上抄的,不过书是《Python核心编程 第二版》,运行环境是python3,在运行代码时出现 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示 ,经过搜索才了解到字符串有两种类型。一是unicode string(通用字符串),一般用引号包含,例如”today is a Monday”;二是 raw bytes strings(原始字符串),一般是b”today is a “,字符串前多了一个b。在socket中,传送的是默认是原始字符川,所以发送前应进行.encode()编码操作,变成原始字符串。接收到以后可以.decode()解码操作显示。

总结,unicode string可以通过.encode()方法来转换为原始字符串。原始字符串可以通过.decode()方法转化为通用字符串。socket默认传输原始字符串。

继续阅读“Python 3.5 Socket TypeError: a bytes-like object is required, not ‘str’ 错误提示”

ubuntu如何设置Python的版本

Ubuntu默认已经安装了Python的版本了,不过是Python2的版本。

我们安装好Python3想把他切换为系统默认的版本。

sudo update-alternatives –config python //显示当前系统中所有的Python版本。

直接输入数字,即可切换为相应的版本号。

这样你甚至可以将自己喜欢的任意版本python安装到任意位置,然后使用update-alternatives将其设置为系统默认python。

同时,也可使用下面的命令来切换

sudo update-alternatives –install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives –install /usr/bin/python python /usr/bin/python3 150

转载来源:http://www.cnblogs.com/qqblog/p/6498594.html

一个简单的装饰器

这是第二遍看Python教程,看来还是要读书

Q:请编写一个decorator,能在函数调用的前后打印出’begin call’和’end call’的日志.

A:

def log(func):
    def wrapper(*args,**kw):
        print ('begin call')
        func(*args,**kw)
        print ('end call')
    return wrapper

@log
def f():
    print ('this is a app!')

f()

输出结果:

begin call
this is a app!
end call

利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456

想转行做程序员,最近在看廖雪峰的Python教程,年龄大了看算法很费劲,之前总是囫囵吞枣,急于求快最后啥都没学到,现在重新看一遍,刚刚把课后的作业想明白,跟其他人的答案比起来我的很拙劣,但是我依然很高兴。

问题:利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456:

答案:

from functools import reduce

def str2float(s):
# char2int
def g(s):
return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
# 整数部分
def h(x,y):
return 10*x + y
# 小数部分
def a(x,y):
return x/10 + y

# 将原始字符串数据分割为两部分
L = s.split('.')
q = list(map(g,L[0]))
u = list(map(g,L[1]))
b = u[::-1]

return reduce(h,q) + reduce(a,b)/10

print (str2float('123.4565778'))