我目前正在做一个python教程,但他们使用IDLE,我选择在终端上使用解释器.所以我必须找出如何导入我创建的模块.起初我试过了
import my_file
Run Code Online (Sandbox Code Playgroud)
然后我尝试自己调用模块内部的函数,但它失败了.我环顾四周,做着
my_file.function
Run Code Online (Sandbox Code Playgroud)
作品.我很困惑为什么要导入它需要这样做.还有,有办法解决这个问题吗?任何人都可以指出我正确的方向.提前致谢.
我目前正在将一个项目(以前的大文件)重新分解为几个单独的python文件,每个文件都运行我的应用程序的特定部分.例如,GUIthread.py运行GUI,Computethread.py做一些数学等等.
每个线程包括从导入模块等使用功能math,time,numpy,等等等等
我已经有一个globalClasses.py包含我的数据类型的类定义的文件,每个.py文件在开始时导入,按照这里的建议:http://effbot.org/pyfaq/how-do-i-share-global-variables-跨模块.htm.这很好用.
我想要做的是将所有我的第三方模块导入到globals文件中,这样我就可以编写import math一次,但是我的所有项目文件都可以使用math函数.
问题:
这有可能吗?
2.这是一个好主意/它是不是很好的Python实践?
我目前的解决方案就是放
import math
import time
import numpy
...
Run Code Online (Sandbox Code Playgroud)
(加上我正在使用的所有其他模块的导入)
在我的项目中的每个文件的顶部...但这似乎不是很整洁,并且在将代码块从一个文件移动到另一个文件时很容易忘记移动依赖项的import语句...
我试图使用spark 2.2在DataFrame的每个分区中打印总元素
from pyspark.sql.functions import *
from pyspark.sql import SparkSession
def count_elements(splitIndex, iterator):
n = sum(1 for _ in iterator)
yield (splitIndex, n)
spark = SparkSession.builder.appName("tmp").getOrCreate()
num_parts = 3
df = spark.read.json("/tmp/tmp/gon_s.json").repartition(num_parts)
print("df has partitions."+ str(df.rdd.getNumPartitions()))
print("Elements across partitions is:" + str(df.rdd.mapPartitionsWithIndex(lambda ind, x: count_elements(ind, x)).take(3)))
Run Code Online (Sandbox Code Playgroud)
上面的代码不断失败,并出现以下错误
Run Code Online (Sandbox Code Playgroud)n = sum(1 for _ in iterator) File "/home/dev/wk/pyenv/py3/lib/python3.5/site-packages/pyspark/python/lib/pyspark.zip/pyspark/sql/functions.py", line 40, in _ jc = getattr(sc._jvm.functions, name)(col._jc if isinstance(col, Column) else col) AttributeError: 'NoneType' object has no attribute '_jvm'
在删除下面的导入后
from pyspark.sql.functions import …Run Code Online (Sandbox Code Playgroud) 我有一个相当大的项目,我试图在发布之前清理它,但是当我运行 flake8 时,我得到了大量的
'F405 <function> may be undefined, or defined from star imports: generic_functions`
Run Code Online (Sandbox Code Playgroud)
我可以通过替换该行来避免这种情况:
from generic_functions import *
Run Code Online (Sandbox Code Playgroud)
在我的文件的开头,但是:
我确实使用了其中的所有函数,所以我不明白如何超过输入每个函数的 80 个字符的限制更加 Pythonic:
from generic_functions import (function1, function2, function3, function4, function5, function6, function7...)
Run Code Online (Sandbox Code Playgroud)执行上述操作会很乏味,特别是如果我需要在 generic_functions.py 中的数十个函数中添加或删除
另一种选择是禁用 F405 警告,但如果该函数确实未定义怎么办?如果允许明星导入,同时仍然捕获任何未定义的内容,那就太好了。有没有办法做到这一点?我尝试将 # noqa 添加到导入行,但似乎没有帮助。
采取这个简单的代码:
from z3 import *
a, b, c, d = Ints('a b c d')
s = Solver()
s.add(a>0)
s.add(b>1)
s.add(c>0)
s.add(d>0)
s.add(a*b - c*d< 20)
s.add(d/a+b/d > 2)
s.add((a*c)/(b*d) > 3)
s.check()
s.model()
Run Code Online (Sandbox Code Playgroud)
这给了我:
[d = 8,
a = 4,
c = 64,
b = 8,
div0 = [(8, 4) -> 2, (256, 64) -> 4, else -> 1],
mod0 = [else -> 0]]
Run Code Online (Sandbox Code Playgroud)
这是版本 4.8.12。
div0 和 mod0 行是什么意思?
我在一年前参加了一个python教程并且非常喜欢它,所以我想我会尝试将tkinter小部件合并到一些东西中,因为GUI.我看过很多关于初学者tkinter的教程都是用这条线开始的代码:
from tkinter import *
这有什么令人信服的理由吗?我的意思是,为什么(或不)加载一切?
我正在 Python 中实现峰值检测算法,该算法仅检测高于阈值幅度的峰值。我不想使用内置函数,因为我还必须将此模拟扩展到硬件实现。
from math import sin,isnan
from pylab import *
def peakdet(v, delta,thresh,x):
delta=abs(delta)
maxtab = []
mintab = []
v = asarray(v)
mn, mx = v[0], v[0]
mnpos, mxpos = NaN, NaN
lookformax = True
for i in arange(len(v)):
this = v[i]
if abs(this)>thresh:
if this > mx:
mx = this
mxpos = x[i]
if this < mn:
mn = this
mnpos = x[i]
if lookformax:
if (this < mx-delta):
if (mx>abs(thresh)) and not isnan(mxpos):
maxtab.append((mxpos, mx))
mn …Run Code Online (Sandbox Code Playgroud) 每当我朗读代码时,都会显示错误消息“TypeError: must be real number, not str”
from math import*
num1 = input("Enter the num ")
num2 = input("Enter the power ")
def exponent_func( num1 , num2):
return(pow ( str(num1) , str(num2) ))
exponent_func(num1 , num2)
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现指数回归函数。sp 代表 sympy。我使用 numpy 和 sympy。首先,在 func_exp 中我尝试使用 np.exp 但它生成了一个错误(属性错误),所以我决定使用 sympy 代替。嗯,这是代码
\n\nimport numpy as np\nfrom numpy.linalg import matrix_rank\nimport scipy \nimport scipy.integrate\n\nimport random \n\nimport matplotlib.pyplot as plt\nimport matplotlib as mpl\nfrom mpl_toolkits.mplot3d import Axes3D\n\nfrom sympy import integrate\nimport sympy as sp\n\nx, y = sp.symbols(\'x, y\')\n\nsp.init_printing(use_unicode=True,use_latex=\'mathjax\')\ndef exponential_regression (x_data, y_data):\n def func_exp(x, a, b):\n return a*sp.exp(b*x)\n popt, pcov = scipy.optimize.curve_fit(func_exp, x_data, y_data)\n a = popt[0] # componente a, Par\xc3\xa1metro \xc3\x93PTimo (popt).\n b = popt[1] # componente b, Par\xc3\xa1metro \xc3\x93PTimo (popt).\n plt.figure()\n puntos = …Run Code Online (Sandbox Code Playgroud) 我带来了几天来自Matlab的python,我有下一个疑问:
我有一个matlab程序,在我的m文件末尾定义了很多函数.即使我在开头调用它们并且它们在我的代码底部定义,Matlab也能识别这些函数.
现在,使用python,我不知道放置函数的最佳方法是什么,因为python在调用它们之前需要知道函数的定义.我不想为每个函数创建一个新文件.我想将所有功能放在一起,但我无法弄明白.我希望你能帮助我.
谢谢,
我有个问题.我认为一个类可以基于一个对象或以前定义类.当我将其更改为类Application(对象)时:它不起作用.你能告诉我为什么它不起作用,为什么下面的代码有效或为什么类应用程序(框架)有效?Frame不是先前定义的对象而不是对象.对不起我的英语不好.这是我的代码:
# Lazy Buttons
# Demonstrates using a class with tkinter
from tkinter import *
class Application(Frame): #
""" A GUI application with three buttons. """
def __init__(self, master):
super(Application, self).__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
""" Create three buttons that do nothing. """
# create the first Button
self.bttn1 = Button(self, text= "I do nothing.")
self.bttn1.grid()
# create second button
self.bttn2 = Button(self)
self.bttn2.grid()
self.bttn2.configure(text="Me too!")
# create third button
self.bttn3 = Button(self)
self.bttn3.grid()
self.bttn3["text"] = "Same here!"
# main …Run Code Online (Sandbox Code Playgroud) 当随机选择列表中的特定元素时,我需要在选择函数中使用while循环来终止
我已经成功调用choice()函数来选择一个随机元素,但是当我尝试添加一个while循环时却遇到了无限循环
from random import *
while choice != 3:
choice([1,2,3,4,5,6])
print(choice)
print('damn!')
Run Code Online (Sandbox Code Playgroud)
我得到一个无限循环。我需要打印所有随机生成的数字,这些数字不是while循环终止的条件。当达到终止条件时,将显示一个字符串,程序将终止
我似乎无法弄清楚我的变量做错了什么。基本上我的 main.py 中有一个变量,我需要在我的 function.py 中的一个函数中对其进行调整。但是我收到一个错误,指出变量尚未定义。
我究竟做错了什么?
主要.py:
from function.functions import *
loaded_tables = []
do_something()
Run Code Online (Sandbox Code Playgroud)
函数.py:
def do_something():
global loaded_tables
loaded_tables.append('test')
Run Code Online (Sandbox Code Playgroud) python ×13
function ×2
import ×2
python-3.x ×2
apache-spark ×1
detect ×1
detection ×1
exponential ×1
flake8 ×1
global ×1
loops ×1
numpy ×1
pep8 ×1
pyspark ×1
python-2.7 ×1
regression ×1
sympy ×1
tkinter ×1
while-loop ×1
z3 ×1