所以我有这个概念的困难*args和**kwargs.
到目前为止,我已经了解到:
*args =参数列表 - 作为位置参数**kwargs = dictionary - 其键成为单独的关键字参数,值成为这些参数的值.我不明白这会对哪些编程任务有所帮助.
也许:
我想输入列表和字典作为函数AND的参数同时作为通配符,所以我可以传递任何参数?
有一个简单的例子来说明如何*args和**kwargs使用?
我发现的教程也使用了"*"和变量名.
是*args和**kwargs刚才占位符或者你使用完全相同*args,并**kwargs在代码中?
我确保pipenv安装在以下路径中C:\Users\Owner> pip install pipenv
然后得到如下回复:
Requirement already satisfied: setuptools>=36.2.1 in c:\users\owner\appdata\local\programs\python\python36-32\lib\
ackages (from pipenv) (39.0.1)
Requirement already satisfied: pip>=9.0.1 in c:\users\owner\appdata\local\programs\python\python36-32\lib\site-pac
(from pipenv) (20.1)
Requirement already satisfied: virtualenv-clone>=0.2.5 in c:\users\owner\appdata\roaming\python\python36\site-pack
from pipenv) (0.5.4)
Requirement already satisfied: virtualenv in c:\users\owner\appdata\roaming\python\python36\site-packages (from pi
(16.0.0)
Requirement already satisfied: certifi in c:\users\owner\appdata\roaming\python\python36\site-packages (from pipen
20.4.5.1)
Run Code Online (Sandbox Code Playgroud)
之后,我尝试将其设置在特定目录中。然后我收到以下消息。
PS C:\Users\Owner\desktop\Python\Pyprojects> pipenv install
The term 'pipenv' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
ling …Run Code Online (Sandbox Code Playgroud) 对不起,这是我第一次提问,我的格式可能有误.我不确定在没有创建类实例的情况下从类调用函数的语法.对于代码:
class A_Class:
var = 10
def __init__(self):
self.num = 12
def print_12(self):
return 12
Run Code Online (Sandbox Code Playgroud)
为什么我能打电话
print(A_Class.var)
Run Code Online (Sandbox Code Playgroud)
并让控制台打印出值10,但如果我打电话
print(A_Class.num)
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
AttributeError: type object 'A_Class' has no attribute 'num'
Run Code Online (Sandbox Code Playgroud)
如果我试着打电话
print(A_Class.print_12)
Run Code Online (Sandbox Code Playgroud)
然后控制台打印:
<function A_Class.print_12 at 0x039966F0>
Run Code Online (Sandbox Code Playgroud)
而不是价值12
我对如何从类调用函数感到困惑.
我想检测图像中的特征(视网膜扫描)。该图像由具有黑色背景的矩形框内的视网膜扫描组成。
我正在使用Python 3.6,并且正在使用Canny Edge Detection来检测图像内部的特征。我知道,精明边缘检测算法使用边缘梯度来查找边缘。尽管Canny Edge Detection为我提供了视网膜扫描内部的功能以供适当选择阈值,但它始终将圆形边缘保持在视网膜扫描和输出图像中的黑色背景之间。
在输出图像中,我只希望图像内部具有特征(视网膜扫描),而没有外部边缘。我怎样才能做到这一点?我正在寻找使用Python的解决方案。如果Canny Edge Detection有助于完成所需的任务,我也愿意使用其他技术。
以下是实际图像,以及我从Canny Edge Detection获得的输出图像。
下面是我正在谈论的圆形边缘(以红色突出显示)。
下面给出的是预期的输出图像:
我的代码在下面给出:
import cv2
import matplotlib.pyplot as plt
from matplotlib.pyplot import imread as imread
plt.figure(1)
img_DR = cv2.imread('img.tif',0)
edges_DR = cv2.Canny(img_DR,20,40)
plt.subplot(121),plt.imshow(img_DR)
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges_DR,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到此代码中使用的图像。
提前致谢。
我想从 PySpark 数据帧(最好以新的 PySpark 数据帧的形式)中选择 n 随机行(无需替换)。做这个的最好方式是什么?
以下是包含十行的数据框的示例。
+-----+-------------------+-----+
| name| timestamp|value|
+-----+-------------------+-----+
|name1|2019-01-17 00:00:00|11.23|
|name2|2019-01-17 00:00:00|14.57|
|name3|2019-01-10 00:00:00| 2.21|
|name4|2019-01-10 00:00:00| 8.76|
|name5|2019-01-17 00:00:00|18.71|
|name5|2019-01-10 00:00:00|17.78|
|name4|2019-01-10 00:00:00| 5.52|
|name3|2019-01-10 00:00:00| 9.91|
|name1|2019-01-17 00:00:00| 1.16|
|name2|2019-01-17 00:00:00| 12.0|
+-----+-------------------+-----+
Run Code Online (Sandbox Code Playgroud)
上面给出的数据框是使用以下代码生成的:
from pyspark.sql import *
df_Stats = Row("name", "timestamp", "value")
df_stat1 = df_Stats('name1', "2019-01-17 00:00:00", 11.23)
df_stat2 = df_Stats('name2', "2019-01-17 00:00:00", 14.57)
df_stat3 = df_Stats('name3', "2019-01-10 00:00:00", 2.21)
df_stat4 = df_Stats('name4', "2019-01-10 00:00:00", 8.76)
df_stat5 = df_Stats('name5', "2019-01-17 00:00:00", 18.71) …Run Code Online (Sandbox Code Playgroud) c:\users\saiyan goku\appdata\local\programs\python\python38\lib\site-packages\jupyter_server\transutils.py:13:FutureWarning:别名将_()被弃用。_i18n()代替使用。
如何摆脱 python 命令行中显示的未来警告错误?
让函数FirstFactorial(num)接受传递的 num 参数并返回它的阶乘。例如:如果 num = 4,那么你的程序应该返回 (4 * 3 * 2 * 1) = 24。对于测试用例,范围将在 1 到 18 之间,输入将始终是一个整数。
这是我的代码
def FirstFactorial(num):
x = [1]
if num == 1:
return 1
else:
for i in range(1,num+1):
x = x*(i)
return x
print (FirstFactorial(4))
Run Code Online (Sandbox Code Playgroud)
预期输出为24。我从上面给出的代码中得到以下输出。
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用matplotlib savefig()保存灰度图像。我发现使用matplotlib savefig()之后保存的png文件与代码运行时显示的输出图像有些不同。代码运行时生成的输出图像包含的详细信息比保存的图形还多。
如何以所有细节都存储在输出图像中的方式保存输出图?
我的代码如下:
import cv2
import matplotlib.pyplot as plt
plt.figure(1)
img_DR = cv2.imread(‘image.tif',0)
edges_DR = cv2.Canny(img_DR,20,40)
plt.imshow(edges_DR,cmap = 'gray')
plt.savefig('DR.png')
plt.show()
Run Code Online (Sandbox Code Playgroud)
输入文件('image.tif')可以在这里找到。
以下是代码运行时生成的输出图像:
以下是保存的图像:
尽管上述两个图像表示同一张图片,但您可以注意到它们略有不同。敏锐地观察两个图像的圆形边缘,表明它们是不同的。
python ×8
opencv ×2
args ×1
kwargs ×1
matplotlib ×1
package ×1
pandas ×1
pip ×1
pipenv ×1
powershell ×1
pyspark ×1
python-3.x ×1
server ×1
virtualenv ×1