python学习-06-基础总结

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()

    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下运行的结果,这是正确的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值