热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

有关python的一系列问题集合

有关python的一系列问题集合,Go语言社区,Golang程序员人脉社

文章目录

    • 前言
    • 1 python的编码解码
    • 2 python中的 (反斜杠)
    • 3 basemap 参数
    • 4 让你设置的环境变量立刻生效(无须注销或重启)
    • 5 pyplot中的figure和subplot函数
    • 6 anaconda 下安装ffmpeg
    • 7. Spyder代码补全设置
    • 8. 怎么利用Basemap画出地球,并显示首都北京
    • 9. python 的 FuncAnimation函数


前言

发现Python中有很多值得研究的问题,但是时间不太多。所以就在这里简要记录一下。


1 python的编码解码

[1] Python String encode(). https://www.programiz.com/python-programming/methods/string/encode


Since Python 3.0, strings are stored as Unicode, i.e. each character in the string is represented by a code point. So, each string is just a sequence of Unicode code points.


告诉我们python里面的字符串默认都是Unicode编码格式。


For efficient storage of these strings, the sequence of code points are converted into set of bytes. The process is known as encoding.



There are various encodings present which treats a string differently. The popular encodings being utf-8, ascii, etc.



Using string’s encode() method, you can convert unicoded strings into any encodings supported by Python. By default, Python uses utf-8 encoding.


还可参考:[1.2] python中的encode()和decode()函数. https://blog.csdn.net/m0_38080253/article/details/78841280

python 查看当前字符串的编码格式可以使用chardet.detect方法,参考:

[1.3] python 怎么查看当前字符串的编码格式。 https://zhidao.baidu.com/question/1887471408784212548.html

#coding:utf-8
import chardet

for i in ['abc123','中国']:
print i,chardet.detect(i)

2 python中的 (反斜杠)

[2] Python中的正斜杠与反斜杠 https://www.cnblogs.com/caiwenjing/p/8267023.html

在这里插入图片描述

很经典。


3 basemap 参数

参数请参考这里,非常全:

[3] matplotlib basemap toolkit.
https://matplotlib.org/basemap/api/basemap_api.html#module-mpl_toolkits.basemap

看不懂英文可以直接复制到谷歌翻译中,很准。

比如resolution 参数:
在这里插入图片描述

lat_0: center of desired map domain (in degrees).

lon_0: center of desired map domain (in degrees).
在这里插入图片描述

里面有一句很重要的话:


Calling a Basemap class instance with the arguments lon, lat will convert lon/lat (in degrees) to x/y map projection coordinates (in meters). If optional keyword inverse is True (default is False), the inverse transformation from x/y to lon/lat is performed.


意思就是:在调用 Basemap() 实例化一个Basemap对象之后,再calling 这个对象 with the arguments:lon和lat (单位是度°),分别转成成地图投影上的坐标 x和y (单位是米m)

我想这个就是以下代码片段这样写的原因:

map = Basemap(projection='robin', lon_0=0, resolution='c')
# 北京的纬度和经度
latitudeBeijing = 39.91
lOngitudeBeijing= 116.39
# 将经纬度转换为图像中的位置(注意参数分别是经度、纬度)
x, y = map(longitudeBeijing, latitudeBeijing)

4 让你设置的环境变量立刻生效(无须注销或重启)

[4] windows下更新环境变量不需要重启系统快速生效的方法(原理篇). https://blog.csdn.net/u010770041/article/details/49915089

这个确实有意思。

我之前设置了一个PROJ_LIB变量,但是我重启spyder之后还是不行。

然后我在cmd中 echo %PROJ_LIB%

之后关闭spyder再打开,就不会报错了,很有意思。


5 pyplot中的figure和subplot函数

[5] How do I get multiple subplots in matplotlib? https://stackoverflow.com/questions/31726643/how-do-i-get-multiple-subplots-in-matplotlib

这里讲述了在python下用pyplot画出四个子图的各种方式,很有意思:

1)直接使用subplots函数定义四个子图

import matplotlib.pyplot as plt
x = range(10)
y = range(10)
fig, ax = plt.subplots(nrows=2, ncols=2) # nrows和ncols是subplots函数的参数,表明几行几列
for row in ax:
for col in row:
col.plot(x, y)
plt.show()

在这里插入图片描述

2)使用subplot函数分别定义子图(有点像MATLAB)

fig = plt.figure()
plt.subplot(2, 2, 1)
plt.plot(x, y)
plt.subplot(2, 2, 2)
plt.plot(x, y)
plt.subplot(2, 2, 3)
plt.plot(x, y)
plt.subplot(2, 2, 4)
plt.plot(x, y)
plt.show()

3)

import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
plt.show()

4)

import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(range(10), 'r') #row=0, col=0
ax[1, 0].plot(range(10), 'b') #row=1, col=0
ax[0, 1].plot(range(10), 'g') #row=0, col=1
ax[1, 1].plot(range(10), 'k') #row=1, col=1
plt.show()

5)

import matplotlib.pyplot as plt
fig, (ax1, ax2, ax3, ax4) = plt.subplots(2, 2, sharex=True, sharey=True)
ax1.plot(range(10), 'r')
ax2.plot(range(10), 'b')
ax3.plot(range(10), 'g')
ax4.plot(range(10), 'k')
plt.show()

注意:

参考:[5.2] https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplots

subplots函数全名叫做:

matplotlib.pyplot.subplots( nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw )

里面很多参数都是默认的。

该函数返回两个值:
在这里插入图片描述

其中,fig表示figure,ax表示axes(是axis的复数形式,如下。是坐标轴的意思)。
在这里插入图片描述

对于figure,这里是figure函数的操作:
在这里插入图片描述

这里还支持subplot函数: [5.3] https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.figure
在这里插入图片描述


6 anaconda 下安装ffmpeg

直接在navigator里面搜索安装即可。

在这里插入图片描述

然而,,,似乎这并不是python里面的一个模块,而是系统的一个软件,所以我在spyder里面
import ffmpeg

结果是:
在这里插入图片描述

但是打开cmd,输入ffmpeg -version,却能够看到相应的版本信息:
在这里插入图片描述

很神奇。


7. Spyder代码补全设置

[7] 代码提示功能和spyder 代码自动补齐设置方式. https://blog.csdn.net/pursuit_zhangyu/article/details/79622150

1)toors->preferences->IPython console->advanced Settings 选中Use the greedy completer

2)也是在这个greedy completer的下面,Autocall调至Full


8. 怎么利用Basemap画出地球,并显示首都北京

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt # 先要import进来
map = Basemap(projection='robin', lon_0=0, resolution='c') #构件Basemap对象实例
map.drawcoastlines(lineo', color='r') # 绘制实心红点
map.scatter(x, y, s = 60, marker='o', color='None', edgecolor='r') # 空心红圈
plt.text(x, y, '北京', color = 'b', fOntsize=10) # 标记“北京”
plt.show()

但是这个时候并不能显示“北京”这两个中文字符(变成了方框)。

在这里插入图片描述

参考:[8] 关于python idle不能成功运行matplotlib中函数的解答。
https://blog.csdn.net/weixin_39278265/article/details/83540297

即在程序的开头加上以下几行:

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['kaiti'] # 指定字体为楷体

在运行即可成功显示“北京”。


9. python 的 FuncAnimation函数

参考[9] matplotlib.animation.FuncAnimation
https://matplotlib.org/api/_as_gen/matplotlib.animation.FuncAnimation.html#matplotlib.animation.FuncAnimation

[9-1] python学习之matplotlib绘制动图(FuncAnimation()参数)
https://www.cnblogs.com/zhouzhe-blog/p/9614360.html

且这里给出一段很基础的代码,供参考:

[9-2] animation example code: simple_anim.py
https://matplotlib.org/examples/animation/simple_anim.html

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))
def animate(i):
line.set_ydata(np.sin(x + i/10.0)) # update the data
return line,
# Init only required for blitting to give a clean slate.
def init():
line.set_ydata(np.ma.array(x, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init,
interval=25, blit=True)
plt.show()

运行效果:
在这里插入图片描述




推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
author-avatar
mobiledu2502860117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有