第一周python学习
星期一
1.序列
#记录生肖
s='猴鸡狗猪鼠牛虎兔龙蛇马羊'
print(s[0:4])
print(s[-1])
year=2018
print(year%12)
print(s[year%12])
print('狗'in s)
print('狗'not in s)
print(s+"3")
print(s*3)
2.if
x="abc"
if x=="ac":print("相等")
else:print('不相等')
3.for
a='猴鸡狗猪鼠牛虎兔龙蛇马羊'
for y in range(2000,2019):print('%s 年的属相是 %s'%(y,a[year%12]))
4.for循环if嵌套
z1=('摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天枰','天蝎','射手')
z2=((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
int_m=int(input('请输入月份:'))
int_n=int(input('请输入日子:'))
for x in range(len(z2)):if z2[x]>=(int_m,int_n):print(z1[x])breakelif int_m==12 and int_n>23:print(z1[0])break
5.while循环if嵌套
z1=('摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天枰','天蝎','射手')
z2=((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
int_m=int(input('请输入月份:'))
int_n=int(input('请输入日子:'))
n=0
while z2[n]<(int_m,int_n):if int_m==12 and int_n>23:breakn+=1
print(z1[n])
星期二
字典
a='猴鸡狗猪鼠牛虎兔龙蛇马羊'
z1=('摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天枰','天蝎','射手')
z2=((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
while True:#请用户输入信息y=int(input('请输入年份:'))m=int(input('请输入月份:'))d=int(input('请输入日子:'))dict1={}dict2={}for i in a:dict1[i]=0for i in z1:dict2[i]=0n=0while z2[n]<(m,d):if m==12 and d>23:breakn+=1#输出信息print(z1[n])dict1[a[y % 12]] += 1print('%s 年的属相是 %s'%(y,a[y%12]))dict2[z1[n]]+= 1for key in dict1.keys():print('%s 的生肖有 %d 个'%(key,dict1[key]))for key in dict2.keys():print('%s 的星座有 %d 个'%(key,dict2[key]))
列表推导式
#从0到10的所有偶数的平方
alist=[]
for i in range(0,11):if i%2==0:alist.append(i*i)
print(alist)
blist=[i*i for i in range(0,11) if i%2==0]
print(blist)
a='猴鸡狗猪鼠牛虎兔龙蛇马羊'
adict={}
for j in a:adict[j]=0
print(adict)
bdict={j:0 for j in a}
print(bdict)
文件的内建函数
file1=open('name.txt','w')
file1.write('诸葛亮')
file1.close
file2=open('name.txt','a')
file2.write('刘备')
file2.write('曹操')
file2.close()
file2=open('name.txt')
print(file2.readline())
file3=open('name.txt')
for line in file3.readlines():print(line)
file4=open('name.txt')
file4.tell()
print('当前位置%s'%file4.tell())
print('当前内容是%s'%file4.read(1))
print('当前位置是%s'%file4.tell())
file4.seek(0)
print('当前位置%s'%file4.tell())
print('当前内容%s'%file4.read(1))
异常
try:a=open('name.txt')
except Exception as e:print(e)
finally:a.close()
函数
def func(a,b,c):print('a=%s'% a)print('b=%s'% b)print('c=%s'% c)
func(1,c=3,b=2)
函数的可变长参数
def howlong(first,*other):print(1+len(other))
howlong(123,456)
函数的变量作用域
var1=123
def func():#global var1 加上 global ,对外面也产生影响var1=456print(var1)
func() #456
print(var1) #123 #456
函数的迭代器和生成器
#迭代器
#iter() next()
list1=[1,2,3]
it=iter(list1)
print(next(it))
print(next(it))
print(next(it))#生成器
def frange(start,stop,step):x=startwhile x<stop:yield xx+=stepfor i in frange(10,20,0.5):print(i)
lambda
def true():return True
true()def true(): return true
lambda : Truedef add(x,y):return x+y
add(3,5)
#lambda 括号内 :返回
def add(x,y):return x+y
lambda x,y : x+y
print(add(2,5))
python内建函数
#filter
a=[1,2,3,4,5,6,7]
filter(lambda x:x>2,a) #list
print(filter(lambda x:x>2,a))
list(filter(lambda x:x>2,a))
print(list(filter(lambda x:x>2,a))) #[3,4,5,6,7]
#map
b=[1,2,3]
map(lambda x:x,b) #list
print(map(lambda x:x,b))
list(map(lambda x:x,b) )
print(list(map(lambda x:x,b) )) #[1,2,3]list(map(lambda x:x+1,b))
print(list(map(lambda x:x+1,b))) #[2,3,4]c=[4,5,6]
list(map(lambda x,y:x+y,b,c))
print(list(map(lambda x,y:x+y,b,c))) #[5,7,9]
#reduce(函数,序列[,初始值]) 初始值可省略 from functools import reduce reduce(lambda x,y:x+y,[2,3,4],1) print(reduce(lambda x,y:x+y,[2,3,4],1)) #(1+2)+3+4=10
#zip
e=(1,2,3)
f=(4,5,6)
zip(e,f)
for i in zip(e,f):print(i) #(1, 4)#(2, 5)# (3, 6)dicta={'a':'aa','b':'bb'}
dictb=zip(dicta.values(),dicta.keys())
print(dictb) #dict
print(dict(dictb))
#{'aa':'a','bb':'b'} value和 key 对调
闭包
def func():a=1b=1return a+bdef sum(a):def add(b):return a+breturn addnum1=func()
num2=sum(2)print(num2(4)) #6#add 函数名称或函数的引用
#add() 函数的调用
print(type(num1)) #int
print(type(num2)) #function
def counter():cnt=[0]def add1():cnt[0] +=1return cnt[0]return add1
num3=counter()
print(num3()) #1
print(num3()) #2
print(num3()) #3
def counter(first=0):cnt=[first]def add1():cnt[0] +=1return cnt[0]return add1num5=counter(5)
num10=counter(10)print(num5())
print(num5())
print(num10())
print(num10())
闭包的使用
#a*x+b=y
def aline(a,b):def arg_y(x):return a*x+breturn arg_y
#a=3 b=5
#x=10 y=?
line1=aline(3,5)
line2=aline(7,8) #两条直线
print(line1(10))
#a*x+b=y
def aline(a,b):return lambda x:a*x+b
#a=3 b=5
#x=10 y=?
line1=aline(3,5)
print(line1(10))
装饰器
def tips(func):def nei(a,b):print('start')func(a,b)print('stop')return nei@tips
def add(a,b):print(a+b)
def sub(a,b):print(a-b)print(add(4,5))
def new_tips(argv):def tips(func):def nei(a,b):print('start %s %s'%(argv,func.__name__))func(a,b)print('stop')return neireturn tips@new_tips('add')
def add(a,b):print(a+b)@new_tips('sub')
def sub(a,b):print(a-b)print(add(4,5))
print(sub(7,3))
自定义上下文管理器
fd=open('name.txt')
try:for line in fd:print(line)
finally:fd.close()with open('name.txt') as f:for line in f:print(line)
星期三
模块
import matplotlib as m
from matplotlib import sleep
sleep()import time
time.sleep()
类
#面向过程
user1={'name':'tom','hp':100}
user2={'name':'jerry','hp':80}def role(rolename):print('name is %s , hp is %s '%(rolename['name'],rolename['hp']))role(user1)
#面向对象
class Player(): #定义一个类def __init__(self,name,hp,occu):self.name=name #变量被称作属性 #name前加__ 只能通过定义新的方法换新名字,不能采用赋值self.hp=hpself.occu=occudef role(self): #定义一个方法print('%s:%s:%s'%(self.name,self.hp,self.occu))def updatename(self,newname): #定义一个方法self.name=newnameprint(self.name)class Mons():'定义怪物类'def __init__(self,hp=100):self.hp=hpdef run(self):print('移动到某处')def whoami(self):print('我是怪物')class Ani(Mons):'定义动物类'def __init__(self,hp=10):super(Ani, self).__init__(hp)class Boss(Mons):'定义boss类'def whoami(self):print('我是boss')user1=Player('tom',100,'fashi') #类的实例化
user2=Player('jerry',90,'zhanshi')
user1.role()
user2.role()
user1.updatename('nike')a1=Mons(1000)
print(a1.hp)
print(a1.run())a2=Ani(800)
print(a2.hp)
print(a2.run())a3=Boss(450)
print(a3.whoami())#判断类型,是否属于子类
print(isinstance(a2,Mons))
类的使用——自定义with
class Testwith():def __enter__(self):print('run')def __exit__(self, exc_type, exc_val, exc_tb):if exc_tb is None:print('正常结束')else:print('has error %s'% exc_tb)with Testwith():print('Test is running')raise NameError('testNameError')
多线程
def myThread(arg1,arg2):print('%s %s' % (arg1,arg2))for i in range(1,6,1):t1=myThread(i,i+1)
import threading
import time
from threading import current_threaddef myThread(arg1,arg2):print(current_thread().getName(),'start')print('%s %s' % (arg1,arg2))time.sleep(1)print(current_thread().getName(),'stop')for i in range(1,6,1):t1=threading.Thread(target=myThread,args=(i,i+1))t1.start()print(current_thread().getName(),'end')
import threading
from threading import current_threadclass Mythread(threading.Thread):def run(self):print(current_thread().getName(),'start')print('run')print(current_thread().getName(),'stop')t1=Mythread()
t1.start()
t1.join()print(current_thread().getName(),'end')
星期四
re
import rep=re.compile('ca*t')
print(p.match('caaaat'))
phone = '123-456-789' # 这是电话号码
p2=re.sub(r'#.*$','',phone) #把#后面的内容删除,替换为空
print(p2)
p3=re.sub(r'\D','',p2) #去掉-,即只有数字
print(p3)
日期
import time
print(time.time())
print(time.localtime())
print(time.strftime('%Y-%m-%d %H:%M:%S'))
import datetime
print(datetime.datetime.now())
newtime=datetime.timedelta(minutes=10)
print(datetime.datetime.now()+newtime)
one_day=datetime.datetime(2008,5,27)
new_day=datetime.timedelta(days=10)
print(one_day + new_day)
random
import random
print(random.randint(1,5))
print(random.choice(['aa','bb','cc']))
OS
import os
print(os.path.abspath('..'))
print(os.path.exists('/Users')) #判断文件是否存在
print(os.path.isfile('/Users')) #判断是否是文件
print(os.path.isdir('/Users')) #是否是目录
os.path.join('/tmp/a/','b/c')
path
from pathlib import Path
p = Path('.')
print(p.resolve())
p.is_dir()#新建目录
q= Path('/tmp/a')
Path.mkdir(q,parents=True)
numpy
import numpy as nparr1=np.array([2,3,4])print(arr1)
print(arr1.dtype)arr2=np.array([1.2,2.3,5.5])
print(arr2)
print(arr2.dtype)print(arr1 + arr2)
print(arr2 * 10)data=[[1,2,3], [4,5,6]]
arr3=np.array(data)
print(arr3)
print(arr3.dtype)arr4=np.arange(10) #0,1,2,3,4,5,6,7,8,9
print(arr4)
print(arr4[1]) #从0开始
print(arr4[1:5])
arr4[2:4]=18
print(arr4)arr_slice = arr4[5:8].copy()
arr_slice[:] =15 #从第一个元素到最后一个元素
print(arr_slice)
print(arr4)
pandas
from pandas import Series,DataFrame
import pandas as pd
obj = Series([4,5,6,-7])
print(obj)print(obj.index)
print(obj.values)
obj2=Series([4,7,-5,3],index=['a','b','c','d'])
print(obj2)
obj2['c']=6
print(obj2)
print('f' in obj2)
sdata={'beijing':5124,'shanghai':8459,'chengdu':5126}
obj3=Series(sdata)
print(obj3)obj3.index=['bj','sh','cd']
print(obj3)
data={'city':['shanghai','shanghai','shanghai','beijing','beijing'],'year':[2016,2017,2018,2016,2017],'pop':[1.5,1.7,1.3,1.4,1.5]}frame=DataFrame(data) #二维
frame2=DataFrame(data,columns=['year','city','pop']) #排序print(frame)
print(frame2)#提取一维
print(frame2['city'])
print(frame2.city)#添加新的一列
frame2['new']=100
print(frame2)#新的一列,判断首都是不是北京 true/false
frame2['cap']= frame2.city =='beijing'
print(frame2)#赋值,字典
pop={'beijing':{2008:1.5,2009:2.0}, #beijing是行索引'sahnghai':{2008:2.0,2009:3.600}}
frame3=DataFrame(pop)
print(frame3)
print(frame3.T) # 年份是行索引 (.T替换)#dataframe 重新索引
obj4=Series([4.5,7.2,-5.3,3.6],index=['b','d','c','a'])
obj5=obj4.reindex(['a','b','c','d','e'],fill_value=0)print(obj5)obj6=Series(['blue','purple','yellow'],index=[0,2,4])
print(obj6)
print(obj6.reindex(range(6)))
print(obj6.reindex(range(6),method='ffill')) #ffill 利用上面的进行填充
print(obj6.reindex(range(6),method='bfill')) #bfill 利用下面的进行填充#删除操作
from numpy import nan as NA
data1=Series([1,NA,2])
print(data1.dropna())data2=DataFrame([[1.,6.5,3],[1.,NA,NA],[NA,NA,NA]])
data2[4]=NA #空列
print(data2.dropna(how='all')) #删除一行全是NA的
print(data2.dropna(axis=1,how='all')) #删除空列#缺失值填充
data2.fillna(0)
print(data2.fillna(0,inplace=True))
print(data2)#层次化索引
import numpy as np
data3=Series(np.random.randn(10),index=[['a','a','a','b','b','b','c','c','d','d'],[1,2,3,1,2,3,1,2,2,3]])
print(data3)
print(data3['b'])
print(data3['b':'c'])print(data3.unstack()) #二维
print(data3.unstack().stack()) #一维
mat
import matplotlib.pyplot as plt#绘制简单的曲线
plt.plot([1,3,5],[4,8,10])
plt.show()import numpy as npx=np.linspace(-np.pi,np.pi,100) #x的定义域为 -3.14~3.14,中间隔100个元素
plt.plot(x,np.sin(x))
plt.show()x1=np.linspace(-np.pi*2,np.pi*2,100) #定义域为: -2pi 到 2pi
plt.figure(1,dpi=50) #创建图表1 ,精度50
for i in range(1,5): #画四条线plt.plot(x,np.sin(x/i))
plt.show()
# #直方图
plt.figure(1,dpi=50) #创建图表1,dip表示图片精细度,dip越大文件越大,杂志要300以上
data=[1,1,1,2,2,2,3,3,4,5,5,6,4]
plt.hist(data) #只要传入数据,直方图就会统计数据出现的次数
plt.show()#散点图
x=np.arange(1,10)
y=x
fig=plt.figure()
plt.scatter(x,y,c = 'r',marker ='o') # c='r'表示散点的颜色为红色 , marker表示指定三点多形状为圆形
plt.show()
星期五
from urllib import requesturl='http://www.baidu.com'
response=request.urlopen(url,timeout=1)
print(response.read().decode('utf-8'))
get post 请求
from urllib import parse
from urllib import requestdata=bytes(parse.urlencode({'word':'hello'}),encoding='utf8') #post post比get多这些部分,encode decode
print(data)response=request.urlopen('http://httpbin.org/post',data=data) #post
print(response.read().decode('utf-8'))response2=request.urlopen('http://httpbin.org/get', timeout=1) #get
print(response2.read())response3=request.urlopen('http://httpbin.org/get', timeout=0.11)try:response3 = urllib.request.urlopen('http://httpbin.org/get', timeout=0.1)
except urllib.error.URLError as e:if isinstance(e.reason,socket.timeout):print('TIMEOUT')
#get 请求
import requests
url='http://httpbin.org/get'
data={'key':'value','abc':'xyz'}
#.get是使用get方式请求url,字典类型的data不用进行额外处理
response=requests.get(url,data)
print(response.text)
#post 请求
import requests
url='http://httpbin.org/post'
data={'key':'value','abc':'xyz'}
#.post 表示post方法
response=requests.post(url,data)
#返回类型为json格式
print(response.json())
结合正则表达式爬取图片链接
第一周python学习相关推荐
- 接触软件工程第一周的学习笔记
接触软件工程第一周的学习笔记 本博客包含内容 此篇博客包含github,注册,登录,学会初步使用.下载git进行使用.创建本地仓库,建立目录,上传更新到github,3个软件工程工具软件Microso ...
- 第一周重学习java总结-停不下来的学习
第一周,java基础的第三次重学 个人介绍 第一周,java基础的重学习 个人介绍 本人一直以来喜欢打游戏,十几年了,于是进入了普通的学校,逐渐的掉到了谷底,每天过着浑浑噩噩的生活,大学期间,我每天都 ...
- 第一周C++学习总结
这学期学习专业课c++,此篇博客主要总结一下这周学习的内容. 一.C++中对于如何输出保留小数点的数字. 以老师发的实验题为例,求两点之间的坐标.一开始我是以printf来进行输出的,如下: #inc ...
- 2020/4/26 第一周java学习周报
第一周 一. Java的优势 1. 开源. 2. 面向对象的编程语言.方便扩充 (关于对象:link ) 3. 方便的内存回收机制.自动优化? 4. 用引用代替了指针. 5. 多线编程,单位时间内性能 ...
- 第12周Python学习周记
&关于计划: 一.Numpy库的学习(学习完毕): 二.Matplotlib的学习(进行中,预计13周之内完成): 三.Markdown的学习(进行中): (本文内容参考于简书教程) & ...
- Python基础第一周--Python语言家族
在这里插入图片描述 一.Python语言家族 1 Introduction 1.1 Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 简单来说,Pyt ...
- 第一天python学习打卡
概念 Python是一种解释型.面向对象的语言.可读性强,且开发团队及其注重简洁.同样的逻辑实现成代码时,越简洁就越不容易出错.同时也更加节省时间. Python是由C语言开发的,但舍去了C语言中指针 ...
- linux运维入门第一周的学习部分命令!
linux运维入门一周后,部分常用命令. { 逻辑靠思维,命令全靠记!} / 根分区 代表分区的根 alias 别名命令 例如:alias NAME='VALUE' cat /etc/ centos- ...
- 第一章 python学习,个人对计算机硬件的一些理解
1. 什么是语言 语言是一个事物与另外一个事物沟通的介质 python则是人(程序员)与计算机沟通的介质 2. 什么是编程 编程就是程序员将自己想要让计算机做的事情用编程语言翻译出来写到一系 ...
最新文章
- 机器学习入门(18)— 卷积网络中的池化层实现
- jenkins使用Git为源码管理(windows master linux slave)
- 智源发布:悟道 · 文汇 | 面向认知,超大规模新型预训练模型
- 推荐一篇文章,感觉学完Iterator模式后应当读一读
- Android 中文件类型与MIME的匹配表(转)
- 流程控制_月隐学python第4课
- Linux下如何搭建Java环境
- Nandflash 驱动深度分析(基于S3C2410)
- 如何在 Mac 上的“照片”应用中创建智能相册?
- 基于matlab指纹识别论文,基于MATLAB的指纹识别算法.doc
- 电脑小米手机,小米手机怎么连接电脑?
- 第三十一篇 -- 学习第六十八天打卡20190911
- 乐观锁 optimistic 和 悲观锁 pessimistic lock
- [解密] DNA存储技术究竟牛在哪里?
- Spring Boot 入门笔记
- 2022字节跳动数仓实习面经(2、3面、hr面)
- OpenGL Glut剖析(2)--平行投影及其显示范围
- 为什么国外程序员钟爱Mac?竟然是这个原因~
- 树莓派3操作系统下载地址
- 黑苹果 制作虚拟机CDR镜像(详细的教程,别再翻了!)
热门文章
- 分享75个PHP源码,总有一款适合您
- HTTP 请求方法 GET/POST/PUT/DELETE
- 六大主流安卓模拟器(腾讯、逍遥、mumu、夜神、雷电、蓝叠)的测评:游戏以外的使用
- 云系统服务器收费,云服务器收费标准
- 计算机控制版面交换鼠标左右键,鼠标左右键怎么互换呢?左右键互换设置方法...
- 剑桥的桥与诗都很美:柔波里的水草
- SAP那些事-职业篇-37-SAP相关书籍简单介绍
- matlab e52pt,帮我看看Matlab怎么改这个错误?
- Landsat系列卫星:Landsat 9 详解和细节(NASA/USGS)
- ​华为轮值董事长胡厚崑:没有自建芯片厂计划;​苹果赔偿1亿美元给App开发者;Git.io停用|极客头条