python 性能问题:
GIL问题:
cpython GIL是解释锁的缩写
python 线程性能很差,特别是CPU密集操作。
解决方案:
1. multiprocessing 模块 把多线程改为多进程
2.直接使用多进程 web应用
3.协程 比线程轻量 eventlet genent
4.用其他解释器,比如 pypy. 没有GIL解释锁
5.多进程+协程
python的编写:
解释器: python-cpython, jpython,pypy
文件: py pyc
python的版本:
python 2.7.x
python 3.x
开发工具: IDLE vim pycharm
python是强类型语言:
1.数字
2.字符串
3.对象
4.dict k-v结构 redis存储系统,数据库 也是k-v结构
5.list
6.tuple
7.set
8.文件 open()
9.bool 类型 True False
0,[],{},"" False
1,[2],{3,4},{'aa':1} True
None False
判断类型函数:
isinstance() import types
type()
语法语句:
1.缩进
2.无分号
3.=
4.if/elif/else
5.for
6.while
7.pass 占位,什么也不做
8.break
9.continue
10.def
11.return
12.yeild 生成器,生成一个无限数列
13.globle
14.raise 抛出异常
15.import
16.from
17.try/except/finally
18.assert 断言 单元测试
19.del
20.print
21.input() raw_input()
逻辑运算:
and or not > < == is in
特殊赋值:
a,b = 1,2
[a,b]=[1,2]
s = 'abc' a,b,c=s --> a='a' b='b' c='c'
a,b=b,a
数字:
python数字大小没有限制
浮点数
python支持复数
其他数学工具:
import math
math.pi
math.e
math.sin(2*math.pi/180)
abs()
min() max()
混合类型升级
1+1.0
类型转换:
int('1')
str(1)
float(1)
字符串string:
'' 与 "" 互相转义
""" """ 原样输出
合并: 'a'+'b'
索引: s[1]
常用方法:
s.find()
s.rstrip()
s.replace()
s.split()
S.isdigit()
s.lower()
GIL问题:
cpython GIL是解释锁的缩写
python 线程性能很差,特别是CPU密集操作。
解决方案:
1. multiprocessing 模块 把多线程改为多进程
2.直接使用多进程 web应用
3.协程 比线程轻量 eventlet genent
4.用其他解释器,比如 pypy. 没有GIL解释锁
5.多进程+协程
python的编写:
解释器: python-cpython, jpython,pypy
文件: py pyc
python的版本:
python 2.7.x
python 3.x
开发工具: IDLE vim pycharm
python是强类型语言:
1.数字
2.字符串
3.对象
4.dict k-v结构 redis存储系统,数据库 也是k-v结构
5.list
6.tuple
7.set
8.文件 open()
9.bool 类型 True False
0,[],{},"" False
1,[2],{3,4},{'aa':1} True
None False
判断类型函数:
isinstance() import types
type()
语法语句:
1.缩进
2.无分号
3.=
4.if/elif/else
5.for
6.while
7.pass 占位,什么也不做
8.break
9.continue
10.def
11.return
12.yeild 生成器,生成一个无限数列
13.globle
14.raise 抛出异常
15.import
16.from
17.try/except/finally
18.assert 断言 单元测试
19.del
20.print
21.input() raw_input()
逻辑运算:
and or not > < == is in
特殊赋值:
a,b = 1,2
[a,b]=[1,2]
s = 'abc' a,b,c=s --> a='a' b='b' c='c'
a,b=b,a
数字:
python数字大小没有限制
浮点数
python支持复数
其他数学工具:
import math
math.pi
math.e
math.sin(2*math.pi/180)
abs()
min() max()
混合类型升级
1+1.0
类型转换:
int('1')
str(1)
float(1)
字符串string:
'' 与 "" 互相转义
""" """ 原样输出
合并: 'a'+'b'
索引: s[1]
常用方法:
s.find()
s.rstrip()
s.replace()
s.split()
S.isdigit()
s.lower()
s.endwith()
code:
1.给定一个100内容的list,使用切片实现一个翻页的功能,每页15条数据
#!/usr/bin/env python
a = range(1,101)
page = int(raw_input('input your page:'))
if page == 0:
page =1
print a[(page-1)*15:page*15]
2.给定一个list,去除重复的数据,并保持list的顺序基本不变
#!/usr/bin/env python
s = raw_input('input your list:')
s = s.split(',')
'''
for i in s:
if s.count(i) > 1:
s.pop(s.index(i))
print s
'''
rs = []
for i in s:
if i not in rs:
rs.extend(i)
print rs
3.给定一个整数list,通过列表解析构建一个包含其偶数项的新list
#!/usr/bin/env python
s = raw_input('input your list:')
s = s.split(',')
s1 = [_ for _ in s if int(_) %2 == 0]
print s1
4.给定两个list,通过列表解析,获取其中相同的数据,并生成一个新的list
s1 = raw_input('input your list1:')
s2 = raw_input('input your list2:')
s1 = s1.split(',')
s2 = s2.split(',')
s3 = [_ for _ in s1 if _ in s2]
print s3
5.给定一个数字,用*将其打印出来.
#!/usr/bin/env python
num0 = [' *** ','* *','* *','* *','* *','* *',' *** ']
num1 = [' * ','* * ',' * ',' * ',' * ',' * ','*****']
num2 = [' *** ',' *',' *',' *** ','* ','* ',' *** ']
num3 = [' *** ',' *',' *',' *** ',' *',' *',' *** ']
num4 = ['* *','* *','* *',' *** ',' *',' *',' *']
num5 = [' *** ','* ','* ',' *** ',' *',' *',' *** ']
num6 = [' *** ','* ','* ',' *** ','* *','* *',' *** ']
num7 = [' *** ',' *',' *',' *',' *',' *',' *']
num8 = [' *** ','* *','* *',' *** ','* *','* *',' *** ']
num9 = [' *** ','* *','* *',' *** ',' *',' *',' *** ']
l = [num0,num1,num2,num3,num4,num5,num6,num7,num8,num9]
a = raw_input('input a number:')
for j in range(7):
for i in a:
print l[int(i)][j]," ",
print
##此代码空格输出有时会遇到问题,有些环境下,空格只占字母的一半位置,暂时还没找到解决的办法,如果哪位朋友知道解决办法,欢迎留言.
这是在我的pycharm下的运行结果,我怀疑是我pycharm设置有问题,但是在网上没有找到解决方法,现在找到了,是因为我用的rehhat7.2语言用的是中文的,不过把系统语言改成英文就好了
这是在我bash下运行的结果,这是正确的