python基础篇之进阶

参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html

  • python种类

1. cpython  使用c解释器生产.pyc(字节码),然后转换成机器码,最后到cpu
2. javapython java解释器-->字节码-->机器码-->cpu
3. IronPython C#解释器-->字节码 --> 机器码--> cpu
4. pypy  内部使用自己的解释器编译成字节码-->机器码.最后在外部执行的时候直接是机器码,速度要快

  • python2.7中编码转换简介:

gbk转utf8: gbk → unicode(编码encode)→ utf8

utf8转gbk: uft8 (解码decode)→  Unicode → gbk

  • 获取传入的参数:

import sys
print sys.argv   【argv类型是个列表】
 
python index.py runserver 8080
['index.py', 'runserver', '8080']
  • 小知识点:

-5 ~ 257   小数池,在内存空间,做缓存用

pass   占位,什么都不干

contains 和 in  作用相同

  • 整数:

【bit_length:计算二进制需要借用几位算出18】
age = 18
result = age.bit_length()
print(result)
18
bin(18)
print(bin(18))
0b10010 #b是二进制的意思 【abs:返回绝对值】
age = 18
print(age.__abs__())
18
age = -18
print(age.__abs__())
18
【divmod:相除18//9 求商 和 余数】
age = 18
result = age.__divmod__(9)
print(result)
(2, 0)
 
【add: 相加】
age = 19
result = age.__add__(1)
print(result) 【把18转换为浮点数】
num=18
print(num.__float__())
【计算数据类型占用内存大小】
num = 18
result = num.__sizeof__()
print(result)
  • 字符串操作

【查找freddy是否包含“re”字符;与【if name in er:】用法类似】
name = 'freddy'
result = name.__contains__('re')
print(result) 【把首字母转换成大写】
name = 'freddy hahahahah'
result = name.capitalize()
print(result) 【把首字母的大写转换成小写】
name= 'Freddy'
result = name.casefold()
print(result) 【】 【把freddy居中,并且在freddy周围加上“*”符号;】
name = 'freddy'
result=name.center(30,'*')
print(result) 【查找d出现的次数】
name = 'freddy'
result = name.count('d')
print(result) 【在0~4范围内,查找d出现的次数】
name = 'freddy'
result = name.count('d',0,4)
print(result) 【把“唐胜伟”转换成gbk编码】
name = '唐胜伟'
result = name.encode('gbk')
print(result) 【在 0,4 这个范围内查找是不是以 y 结尾】
【查找范围规则:大于等于0 and 小于3】
name = 'freddy'
result = name.endswith('y',0,4)
print(result) 【把 tables键 换成8个空格;应用场景:把配置文件的tab全换成空格】
name = 'fre\tddy'
result = name.expandtabs()
print(result)
print(len(result)) 【查找指定字符所在的下标位置,find找不到时返回“-1”;index找不到时会“报错”】
name = 'freddy'
#result = name.find('d')
result = name.index('d')
print(result) 【字符串拼接】
name = 'freddy {0} as {1}'
result = name.format('1sb','2sb')
print(result) 【把列表里的字符串进行拼接】
name = ['f','r','e','d','d','y']
result = "_".join(name)
print(result) 【以“is”为标志位,把字符串分割】
name = 'freddyissb'
result = name.partition('is')
print(result) 【把s替换成8; "3":指定你想替换几个,并不是替换的范围】
name = 'freddyissb'
result = name.replace('s','8')
#result = name.replace('s','8',3)
print(result) 【去掉换行符,以列表形式打印出来】
name = '''
aa
bb
cc
'''
result = name.splitlines()
print(result) 【以空格为分割符进行切割】
name = 'Freddy freddy'
result = name.split(' ')
print(result) 【strip:指定去掉的字符,和splitlines功能相同;split:去掉分割符并进行拼接】
name = '''
aa
bb
cc
'''
result = name.split("\n")
print(result) 【去掉字符串两边的空格】
name = ' Freddy '
result = name.strip()
print(result)
【去掉字符串左边的空格】
name = ' Freddy'
result = name.lstrip()
print(result)
【去掉字符串右边的空格】
name = 'Freddy '
result = name.rstrip()
print(result) 【查找‘freddy’中是否包含‘re’】
name='freddy'
result = name.__contains__('re')
print(result) 【判断是否包含字母or数字】
name = 'freddy123'
result = name.isalnum()
print(result)
【判读是否只是字母】
name = 'freddy123'
result = name.isalpha()
print(result)
【判断是否只是数字】
name = 'freddy123'
result = name.isdigit()
print(result)
【 检测是否为空】
name = 'freddy'
result = name.isspace()
print(result)
【判断每个单词首字母是否是大写】
name = 'Freddy Freddy'
result = name.istitle()
print(result)
【把大写字母全部转换成小写字母】
name = 'FREDDY'
result = name.lower()
print(result)
【判断字符串是否相等】
name = 'Freddy'
result = name.__eq__('Freddy')
print(result)
  • 列表

【给列表追加内容】
name = ['Freddy']
name.append('sb')
print(name)
【统计Freddy的个数,嵌套列表,只会统计外层】
name = ['Freddy','Freddy',['Freddy','Freddy']]
result = name.count('Freddy')
print(result) 【对原来列表的扩展】
li = list([1,2,3,])
print(li)
li.extend([4,5,])
print(li) 【在第0个位置放入一个freddy】
li = list([1,2,3,])
li.insert(0,'freddy')
print(li) 【pop:删除列表中下标是0的值】
li = list([1,2,3,])
ret = li.pop(0)
print(li)
print(ret) ##能够打印出pop删除的值; 【指定删除11这个数字】
li = [11,11,22,33,44]
print(li)
li.remove(11)
print(li) 【反转打印显示结果】
li = [11,11,22,33,44]
print(li)
li.reverse()
print(li) 【使用sort进行排序】
name = ['bb','cc','aa']
name.sort()
print(name)
  • 元组:

元组and元素:

【元组的元素不可修改】

【元组元素的元素可以修改】

【统计这个元组中有几个88】
name = (22,88,33,55,33,88)
result = name.count(88)
print(result) 【查找元组中88的第一个索引值】
name = (22,88,33,55,33,88)
result = name.index(88)
print(result)
【判断元组中是否包含88这个数字】
name = (22,88,33,55,33,88)
result = name.__contains__(88)
print(result)
  • 字典: dict是内置类的变量名,自己不能使用dict名字做变量名。

定义字典:

【以下这两个例子意义相同】

dic = {'k1':'v1','k2':'v2'}
dic = dic(k1='v1',k2='v2')

字典取值操作:

获取字典中的key:  keys

获取字典中的value: values

同时获取key和value:  items

【用print取字典里面的值,取不到会报错】
dic={'k1':'v1','k2':'v2'}
print(dic['k1'])
print(dic['k2'])
print(dic['k3']) 【这个方法找不到“K3”会返回None,如果传入值,则会打印传入的值】
print(dic.get('k1'))
print(dic.get('k2'))
print(dic.get('k3','alex')) 【pop必须要指定删除的“k”】
dic={'k1':'v1','k2':'v2'}
dic.pop('k1')
print(dic) 【给dic字典增加一个“key”】
dic={'k1':'v1','k2':'v2'}
dic['k3'] = 123
print(dic) 【给dic字典增加一个“key”】
dic={'k1':'v1','k2':'v2'}
dic.update({'k3':888})
print(dic) 【清空字典】
dic={'k1':'v1','k2':'v2'}
dic.clear()
print(dic) 【浅copy字典】
food = {'1':'apple','2':'banana'}
newfood = food.copy()
print(newfood)
  • set集合

set集合是一个无序且不重复的集合。
创建一个set集合:
name = set('abbbbbbbbbb')
print(name)
set(['a', 'b'])
  • 小练习

例1:把 [11,22,33,44,55,66,77,88,99,],11~55放到列表A中,把66~99放入列表B中,最后以字典的形式打印出来:

例1:
san_list = [11,22,33,44,55,66,77,88,99,90,]
dic = {}
dic['k1']=san_list[0:5]
dic['k2']=san_list[5:]
print(dic) 例2:
Li = [11,22,33,44,55,66,77,88,99,90,]
Li1=[]
Li2=[]
for num in Li:
if num > 66:
Li1.append(num)
else:
Li2.append(num)
dic={'k1':Li1,'k2':Li2}
print(dic) 例3:
Li = [11,22,33,44,55,66,77,88,99,90,]
Li1 = []
Li2 = []
for num in range(len(Li)): ##检索Li整个列表,使用len函数来计算循环次数;
if int(Li[num]) > 66: ##对比Li里面的值是否大于66;
Li1.append(Li[num]) ##把大于66的值写入到Li1列表中;
else:
Li2.append(Li[num])
dic = {'k1':Li1,'k2':Li2} ##字典嵌套列表的形式打印出结果来;
print(dic) 例4,推荐:
Li = [11,22,33,44,55,66,77,88,99,90,]
dic = {}
for num in Li:
if num > 66:
if 'k1' in dic.keys():
dic['k1'].append(num)
else:
dic['k1'] = [num,]
else:
if 'k2' in dic.keys():
dic['k2'].append(num)
else:
dic['k2'] = [num,]
print(dic)

python基础篇之进阶的更多相关文章

  1. python基础篇(六)

    PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...

  2. python基础篇(二)

    PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...

  3. python基础篇(三)

    PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...

  4. python基础篇-day1

    python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...

  5. 十三. Python基础(13)--生成器进阶

    十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends&qu ...

  6. python基础篇(五)

    PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...

  7. python基础篇(一)

    PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...

  8. python基础篇(四)

    PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...

  9. Python基础篇--输入与输出

    站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...

随机推荐

  1. LeetCode—-Sort List

    LeetCode--Sort List Question Sort a linked list in O(n log n) time using constant space complexity. ...

  2. Python基础笔记系列四:工具的安装与配置

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 一开始是没有打算写工具这篇的,后来发现在某些情况下会遇到一些奇怪的问题,这 ...

  3. 理解Java中字符流与字节流的区别(转)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  4. lucene学习-2 - 一个示例

    接下来我会写一个lucene的实例.实际上在搜索引擎上随便搜索下都能找到这样的东西.不过还是写一下吧,这也是我学习的经历. package com.zhyea.doggie; import java. ...

  5. Android并发编程之白话文详解Future,FutureTask和Callable

    从最简单的说起Thread和Runnable 说到并发编程,就一定是多个线程并发执行任务.那么并发编程的基础是什么呢?没错那就是Thread了.一个Thread可以执行一个Runnable类型的对象. ...

  6. linux下{}的用法

    在touch {a,b}.txt时,同时创建了a.txt,b.txt两个文件 而touch {1..10}.txt,同时创建了10个txt文件,从1.txt到10.txt 在linux通配符中,{n, ...

  7. idea结合git使用

    1.下载安装好git.exe2. 2.安装好以后在cmd输入git 3.在idea配置git环境 4.托管项目到码云 5.登录码云官网,地址就是你在码云注册的账号和密码

  8. 51nod 1279 单调栈

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1279 1279 扔盘子 题目来源: Codility 基准时间限制:1 ...

  9. 【Hive】执行脚本

    1.linux下执行hive sql脚本 (1)hive -e “sql语句” (2)hive -e “sql语句” >> xxx 将sql查出来的语句重定向到xxx文件中,会显示Ok和数 ...

  10. Android移动端网络优化

    介绍下针对移动端的网络优化,不限于 Android,同样适用于 iOS 和 H5 本文为性能优化系列第四篇,目前性能调优专题已完成以下部分: 性能优化总纲——性能问题及性能调优方式 性能优化第四篇—— ...