Python 学习记录
注释
在python中,用 # 作单行注释
用三引号作多行注释(三个单引号或者三个双引号)
#单行注释
#单行注释'''
多行注释
多行注释
多行注释
'''
print 输出
print输出是默认换行的
x=1
y=2
#换行输出
print(x)
print(y)#不换行输出
print(x,y)
字符串
s="abcdefg"
print(s)
如果想获取字符串中的某一段子串,用 [头下标:尾下标] 来截取相应字符
s="abcdefg"
print(s[2:5]) #输出第三到六个字符,即 cdef
print(s[2:]) #从第三个字符还是输出
print (s*2) #连续输出字符串两次
print (s+"123") #输出 abcdefg123
列表
列表用 [ ]
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾
a=[1,2,3,4,5]
s=['a','b','c','d']
print(a[:])
print(s[:])
print(a[-1])
print(a+s)
使用append()添加元素
list1=[] #空列表
list1.append('a')
list1.append('b')
print(list)'''
输出
['a','b']
'''
使用del删除列表中的元素
list=['a','b','c']
del list[1]
print(list)'''
输出
['a','c']
'''
元组
元组类似于列表
元组用 ()标识
元组不能二次赋值,相当于只读列表
a=(1,2,3,4,5)
s=('a','b','c','d')
print(a)
print(s)
print(a+s)
元组只包含一个元素时,需要在元素后面加逗号
tup1 = ()
tup = (1,)
元组的元素值是不允许删除的,但是可以用del 删除整个元组
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组
print('abc',123,'def')
字典
列表是有序对象的集合,字典是无序对象的集合
字典当中的元素是通过键值来存取的,而不是通过偏移
字典用 { } 标识
创建时,如果同一个键被赋值两次,将记住后一个的值
键必须不可变,所以可以用数字,字符串或元组充当,用列表就不行
zi = {'name':'Tom','age':'two','address':'home'}
zi['name'] = 'James' #修改
zi['sex'] = 'man' #添加print(zi) #输出完整字典print(zi.key) #输出全部的键print(zi.value) #输出全部的值del zi['sex'] #删除sex条目zi.clear() #清空所有条目del zi #删除整个字典
数据转换
只需要将数据类型作为函数名即可
int(x)
long(x)
float(x)
str(x) #转成字符串
ord(x) #将一个字符转成整数
hex(x) #将一个整数转成十六进制的字符串
oct(x) #将一个整数转成八进制的字符串
运算符
a**b :结果为a的b次幂
a//b :结果为a/b的商的整数部分
逻辑运算符
and 与
or 或
not 非
成员运算符
in :如果在序列中,找到指定值,则返回true,否则返回false
not in :如果在序列中,找不到指定值,则返回true,找到则返回false
list = [1,2,3,4,5]
a = 10
b = 20
if(a in list)print('a is in list')
elseprint('a is not in list')if(b not in list)print('b is not in list')
elseprint('b is in list')
身份运算符
is :判断两个标识符是不是引用自同一对象
is not : 判断两个标识符是不是引用自不同对象
如果两个标识符的类型相同,且值相等,则为引用自同一对象
a = 20
b = 20 #此时 id(a) == id(b)
if(a is b) # 结果为 trueprint('true')b = 30
if(a is b) #结果为 falseprint('flase')
条件语句
if 判断条件1:执行语句1
elif 判断条件2:执行语句2
else:执行语句3
循环语句
python 提供 for 和 while 循环语句
没有do … while
while 判断条件:执行语句
while…else在循环条件为false时,执行else语句
( 执行一次else语句后,会退出循环,执行后面的语句,通过break语句中断,则不会执行else语句 )
while 判断条件1:执行语句1
else:执行语句2
for 循环
1.通过序列索引迭代
fruit = ['apple','banana','mango']
for a in fruit:print(a)'''
输出:
apple
banana
mango
'''
fruit = ['apple','banana','mango']
for a in range ( len ( fruit ) ):print( fruit[a] )'''
输出:
apple
banana
mango
'''
for…else语句
若不符合for循环的条件,则退出for循环,执行else语句
(若通过break语句中断循环,则不会执行else语句)
fruit = ['apple','banana','mango']
for a in range ( len ( fruit ) ):print( fruit[a] )
else:print('that is all')'''
输出
apple
banana
mango
that is all
'''
pass语句
pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
def sample(n_samples):pass
该处的 pass 便是占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容时,可以用 pass 填充,使程序可以正常运行。
del语句
del var
将某一变量删除
a = 10
print(a)
del a
print(a) #会报错
python 的 math、cmath模块
要使用模块,必须先引入
import math
import cmath
字符串格式化
基本用法是将一个值插入到有%s 或%d 的字符串中
print('my name is %s and my age is %d' % ('Tom',12))'''
输出
my name is Tom and my age is 12
'''
三引号
使用三引号,允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
a = ''' hello
world''''''
输出
hello
world
'''
日期和时间
time 和 calendar 模块可以格式化日期和时间
import time
ticks = time.time() #获取时间戳
print(ticks)
获取当前时间
import time
ticks = time.time()
localtime = time.localtime(ticks)
print(localtime)'''
输出
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=29, tm_hour=16, tm_min=42, tm_sec=19, tm_wday=2, tm_yday=120, tm_isdst=0)
'''
获取格式化时间
import time
ticks = time.time()
localtime = time.localtime(ticks)
asctime = time.asctime(localtime)'''
输出
Wed Apr 29 16:44:41 2020
'''
格式化日期
import time
strftime = time.strftime('%Y-%m-%d %H-%M-%s',time.localtime())
print(strftime)'''
输出
2020-04-29 16-49-13
'''
获取某月日历
import calendar
cal = calendar.month(2020,4)
print(cal)'''
输出April 2020
Mo Tu We Th Fr Sa Su1 2 3 4 56 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
'''
函数
定义函数:
以关键字def开头,后接标识符名称和圆括号()
def function (parameter):执行语句return [expression]
不可更改对象: 字符串,整型,元组
(字符串类型和整型更改值的话,相当于删除原来的对象,然后重新生成一个对象)
可更改对象: 字典,列表
参数传递
参数如果是不可变类型,则相当于值传递,只是将值复制过去,对于对象本身没有影响
参数如果是可变类型,则相当于引用传递,对于对象本身会有影响
参数传递采用关键字传递
使用关键字传递,允许函数调用时,参数的顺序和声明不一致
def func(age,name):print('age: ',age)print('name: ',name)return
func(name='tom',age=12)'''
输出
age: 12
name: tom
'''
不定长传递
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数
def func(arg1,*arg):print(arg1)for a in arg:print(a)return func(1,2,3,4)
匿名函数
使用lambda创建匿名函数
lambda的主体是一个表达式
sum = lambda arg1,arg2 : arg1 + arg2
print(sum(10,20))
模块
模块是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块的引入
import module1
from…import语句
from…import语句能从模块中导入指定的部分
如导入math模块的sin函数:
from math import sin
将模块的全部内容导入
from module import *
在函数中使用全局变量
money = 2000
def func():money = money + 1return func()
print(money)#输出 2001
dir函数
一个排好序的字符串列表,内容是一个模块里定义过的名字。
返回的列表容纳了在一个模块里定义的所有模块,变量和函数。
import math
print(dir(math))'''
输出
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
'''
globals() 和 locals() 函数
如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。
如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。
两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。
reload() 函数
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。
Python中的包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在 _init_.py 文件, 该文件的内容可以为空。_init_.py 用于标识当前文件夹是一个包。
当首次调用包中的文件时,会首先调用_init_.py文件
Python 与 Excel 实战
import openpyxl, pprintwb = openpyxl.load_workbook('check.xlsx') # 打开excel文件
sheet = wb['Sheet1'] # 获取人口统计sheet工作表countyData = {} # 定义统计结果保存字典
print('reading...')for row in range(2,sheet.max_row+1): # 从文件第二行开始读取数据,直至最后一行state = sheet['B' + str(row)].value # 读取数据county = sheet['C' + str(row)].value # 读取数据pop = sheet['D' + str(row)].value # 读取数据countyData.setdefault(state, {})countyData[state].setdefault(county,{'tracts':0,'pop':0})countyData[state][county]['tracts'] += 1 # 该县人口普查次数加一countyData[state][county]['pop'] += int(pop) # 该县所有普查次区人口数量相加print('writing results...')
resultFile = open('result.py','w')
resultFile.write(pprint.pformat(countyData)) # pprint生成一个字符串,打印已经格式化好的,有效的python代码resultFile.close()
print('Done')
Python 自然语言处理
import jiebaf = open('')
txt = f.read()
words = jieba.lcut(txt)
counts = {}for word in words:if(len(word) == 1) :continueelif word == '诸葛亮' or word == '孔明' : # 排除人物重复的情况rword = '孔明'else :rword = wordcounts[word] = counts.get(word,0) + 1personlist = ['孔明','曹操','刘备'] #列出人物表items = list(counts.items())
items.sort(key = lambda item: items[1] , reserve = True) # 按照降序排列
for i in range(20):word, count = items[i]if personlist.count(word) > 0 :print("{0:<10}{1:>5}".format(word,count))
Python 学习记录相关推荐
- Python学习记录day3
2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...
- 【Python学习记录】Numpy广播机制(broadcast)
✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...
- Python学习记录——英文名修改成标准格式
Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...
- python学习记录——容器篇
容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...
- Python学习记录day6-反射、常用模块
Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...
- Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)
一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...
- 蜗牛一步一步地往上爬的Python学习记录
Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...
- Python学习记录:shapefile.Writer报错
Python学习记录 shapefile.Writer报错 w=shapefile.Writer(r.shapeType)使用时报错 Exception: The target filepath 5 ...
- Python学习记录(一)PIL库对于图像操作方法的简单整理
Python学习记录(一)PIL库对于图像操作方法的简单整理 首先对PIL库进行一个简单的介绍:Python图像库PIL(Python Image Library)是python的第三方图像处理库,由 ...
- 二、python基础语法篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
最新文章
- 【Java】 LeetCode 622. 设计循环队列 (有关实现循环队列的讲解)
- 程序员35岁破局之路
- hiho模拟面试题2 补提交卡 (贪心,枚举)
- 容器搭建Hadoop步骤
- sklearn炼丹术之——Linear Models汇总
- [HTTP协议] 基础知识
- 手机上有没有学python的软件-如何优雅的在手机上进行Python编程
- Orchard 之:Widget,兼看 Layer 在权限控制中的作用
- CSS:实现闪烁效果动画
- 苹果手机桌面找不到计算机,苹果手机在我的电脑显示不出来怎么办
- java实现网站的访问量_java统计网站访问量
- 联盟营销最佳实践:提高联盟计划的投资回报率
- 特征值和特征向量的作用
- 网络安全实验室|网络信息安全攻防学习平台(基础关)
- HEVC视频扩展解决方法
- react与mobx搭配时如何缓存mobx的数据(刷新之后保存状态)
- CA认证简单介绍与工作流程
- javascript练习12:得到输入歌词中朋友出现的次数
- Flutter 实现原理及跨平台实践
- Oracle触发器分类及使用