我刚刚开始学习Python,并试图调用我在另一个函数中定义的一个函数.解释器返回错误:NameError:未定义全局名称'isPrime'
这是我的代码的样子:
def split (value):
x = 2
halfOne, halfTwo = 0, 0
if isPrime(value) == True:
print (value)
return
else:
while x < value:
if value % x == 0:
halfOne = value / x
halfTwo = x
split(halfOne)
split(halfTwo)
x += 1
def is_prime(value):
# some code
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
import java.util.Random;
import java.util.Scanner;
public class Carpim {
Scanner input = new Scanner(System.in);
Random myRandom = new Random();
public void determine(){
int trueNumber = 0;
int wrongNumber = 0;
int total = 0;
int answer = 0;
for (int i = 0; i < 5; ++i){
int num1 = 1 + myRandom.nextInt(11);
int num2 = 1 + myRandom.nextInt(11);
int correctResult = num1 * num2;
System.out.println( num1 + "*" + num2 + " What is the answer?");
answer = input.nextInt();
if …Run Code Online (Sandbox Code Playgroud) 您好我在将图像绘制到我的框架上时出错.我不确定这里出了什么问题.
我在这里得到以下错误.
Java: 77: cannot find symbol
symbol: variable image
location: class DrawComponent
g.drawImage(image, 0, 0, null);
class DrawComponent extends JComponent {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
// draw a circle with the same center
double centerX = 250;
double centerY = 180;
double radius = 20;
Ellipse2D circle = new Ellipse2D.Double();
circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
g2.setPaint(Color.RED);
g2.fill(circle);
g2.draw(circle);
String filename = "SydneyOperaHouse.jpeg";
try{
Image image = ImageIO.read(new File(filename));
}catch(IOException ex){ …Run Code Online (Sandbox Code Playgroud) 我是lisp的菜鸟,只用了两个星期左右......
我用setq声明了一些全局变量:
(setq myvar '(WHATEVER))
和一个应该修改我告诉它的变量的函数:
(defun MYFUN (varname)
(setq varname '(POOP))
)
Run Code Online (Sandbox Code Playgroud)
但是当我拨打电话时:(MYFUN 'myvar)
并检查myvar现在的值,它仍然是(WHATEVER)如何进行MYFUN持久性更改?
假设我们有一个变量(在用于其预期目的之后)永远不应该被访问.
(就Rust而言,这样做可能是有效的,但其内容在应用程序的上下文中在逻辑上不再有效).
例如,在Python中,您可以简单地执行以下操作:
del myvar;
Run Code Online (Sandbox Code Playgroud)
有没有办法禁止将来访问函数体中声明的变量或作为参数传递的引用?
请注意,通常可以使用范围,但这不适用于函数参数.
每当我评论我的代码时 - 我都喜欢有好评和大评论.有时需要嵌套大评论,我通常会添加额外的缩进.但是,如果我能够使用额外的代码块{}来使缩进更符合逻辑,那将会更加清晰.
我们有一个简单的例子:
// ?????????????????????
// ? COMMENT ?
// ?????????????????????
{
// Code in here
}
// ?????????????????????
// ? ; ?
// ?????????????????????
Run Code Online (Sandbox Code Playgroud)
请问{}在这个例子中放慢Java程序的速度以任何方式或将他们由编译器被自动删除?肯定{}是一个范围本身,Java会想要保持这个,对吗?
我正在创建一个函数,该函数给定的列表Char,给出相同的列表,但仅带有数字:
algarismos :: [Char] -> [Char]
algarismos [] = []
algarismos (x:xs) | (isDigit x) =x:(algarismos xs)
| otherwise =(algarismos xs)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息
error: Variable not in scope: isDigit :: Char -> Bool
Run Code Online (Sandbox Code Playgroud)
为什么说isDigit如果x存在,则范围没有变量?
以下链接表示中定义的结构main没有函数调用的范围,因为它们是本地的,因此您应该全局定义结构。但是对于变量,最好在本地声明变量并通过指针传递给函数,而不是声明全局变量。
在纯 C 中有没有办法使用指针等将 main 中定义的结构传递给函数?如果您不介意,请使用示例程序来演示该方法。谢谢。
在哪里声明结构,在 main() 内部还是在 main() 外部?
这段代码有效,但不是我想要的。我想在main. 这可能吗?
#include <stdio.h>
#include <SDL2/SDL.h>
void function();
struct hexColour
{
Uint32 red;
}hc;
int main(void)
{
hc.red = 0xFFFF0000;
function(hc);
return 0;
}
void function(struct hexColour hc)
{
printf("red is %x\n", hc.red);
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
int main(void)
{
struct hexColour
{
Uint32 red;
}hc;
hc.red = 0xFFFF0000;
function(hc);
return 0;
}
Run Code Online (Sandbox Code Playgroud) if语句有一定的条件然后我在if语句中使用while循环和另一个条件,if语句中的条件是否会在每次迭代中被测试?
LIST-SEARCH'(L,k)
x=L.nil.next
if x!=L.nil
while x.key!=k
x=x.next
return x
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个带有函数的 Python 脚本。
下面的代码按预期工作,它打印 3。
def function(a,b):
k = a+b
print(k)
a = 1
b = 2
function(a,b)
Run Code Online (Sandbox Code Playgroud)
但是当我像这样将打印语句移到函数之外时,它将不起作用。
def function(a,b):
k = a+b
a = 1
b = 2
function(a,b)
print(k) # -> NameError: name 'k' is not defined
Run Code Online (Sandbox Code Playgroud)
关于如何在函数中没有打印语句并仍然使此代码工作的任何想法?