我正在学习python并尝试在pyschools做练习(如果有人知道它是什么).无论如何,我有一个练习,要求我执行以下操作:编写一个函数百分比(值,总),它接受两个数字作为参数,并返回百分比值作为整数.
这是我的代码:
def percent(value, total):
percent = value / total * 100
return int(percent)
Run Code Online (Sandbox Code Playgroud)
它在我的Python Idle中运行良好,它提供了所有正确的答案.然而,当我在pyschools网站上运行时,它说,例如,当使用参数46和90调用函数时,函数返回0.但是,在我的python空闲时,它正确返回51.可能是什么问题?非常感谢您的帮助!
嗨,大家好!
我有一个小问题,我不能口头解释这个问题,所以我只想在代码中说明一下:
class move(object):
def __init__(self, number):
self.number = number
list1 = [move(1), move(2), move(3), move(4)]
list2 = [move(3), move(7)]
list1.remove(list2[0])
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
list1.remove(list2[0])
ValueError: list.remove(x): x not in list
Run Code Online (Sandbox Code Playgroud)
如您所见,list1 [2]和list2 [0]都派生自同一个类并具有完全相同的属性,它们只是该类的两个不同实例
这个问题的最佳解决方案是什么?
非常感谢您的帮助!
尝试从表中解析一些数据时,我遇到了一个小问题.我的程序读取表的一行,然后将其作为字符串放入列表中(Python使用reader.next()
函数默认使用它).一切都很好,直到在同一个表空间中没有任何逗号分隔某些文本.在这种情况下,程序认为逗号是一个分隔符并且生成2个列表索引而不是一个,这使得事情list[0].split(';')
变得不可能.
我很难口头解释,所以让我说明一下:
csv_file = | House floors | Wooden, metal and golden | 2000 | # Illustration of an excel table
reader = csv.reader(open('csv_file.csv', 'r'))
row = reader.next() # row: ['House floors;Wooden', 'metal and golden; 2000']
columns = row.split(';') # columns: ['House floors, Wooden', 'metal and golden', '2000']
# But obviously what i want is this:
# columns : ['House floors', 'Wooden, metal and golden', '2000']
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助!
我想知道如何访问python类中的实例变量.我应该为每个实例变量创建一个方法,还是应该直接访问它们?
这是一个例子:
class Example(object):
def __init__(self):
self.x = 5
def getX(self):
return self.x
def addYtoX(self, y):
return self.x + y # OR: return self.getX() + y
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试获取2个值并将它们转换为Integer或Double,但我无法以如下所述的简单方式执行此操作,因为变量声明无法在块语句中完成:
if (args.get(0) instanceof Integer) {
Integer left = (Integer) args.get(0);
} else {
Double left = (Double) args.get(0);
}
if (args.get(1) instanceof Integer) {
Integer right = (Integer) args.get(1);
} else {
Double right = (Double) args.get(1)
}
return left + right; // this is not allowed
Run Code Online (Sandbox Code Playgroud)
当然,一个简单的解决方案是耗尽所有4种组合:
if (args.get(0) instanceof Integer && args.get(1) instanceof Integer) {
return ((Integer) args.get(0)) + ((Integer) args.get(1));
} else if ...
Run Code Online (Sandbox Code Playgroud)
但是,我认为有一个简单而着名的设计模式可以实现我更加雄辩的想法.
假设我有以下2个功能相同的代码片段,它们返回列表中也包含其反转的字符串:
var a = Array("abc", "bca", "abc", "aba", "cba")
a.filter(x => a.toSet(x.reverse)).distinct
Run Code Online (Sandbox Code Playgroud)
和
var a = Array("abc", "bca", "abc", "aba", "cba")
var aSet = a.toSet // notice that toSet is called outside filter
a.filter(x => aSet(x.reverse)).distinct
Run Code Online (Sandbox Code Playgroud)
我想知道这些片段之间的时间复杂度是否存在差异,因为在第一个片段中我调用.toSet
了每个元素a
,而在第二个片段中我只在开头调用它.然而,话虽如此,有些东西告诉我编译器可能会优化第一个调用,从而产生相当于时间复杂度的2个片段.
如果后者是真的,你能否请我参考一些相关的文献?
谢谢.
嗨!
我目前的项目中存在一个小的设计问题.我有一个班级,其中包含有关客户在商店的时间的信息.
public class Customer {
private String enterTime;
private String leaveTime;
public void enterTimeToInt {
Integer.parseInt(enterTime);
}
public void leaveTimeToInt {
Integer.parseInt(leaveTime);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在我的计划中,我遇到了一种情况,我必须确定在给定时间内店内是否有客户.现在,我所做的是我创建了Customer类的另一个实例,它表示给定的时间,然后检查它是否与任何"真正的"客户匹配.但问题是,我创造了一个客户对象,以更抽象的方式代表时间,而不是客户.
在这种情况下我该怎么办?我需要与Customer类完全相同的方法和变量,但我不认为只是创建一个表示随机时间而不是特定客户时间的Customer类是一个很好的设计选择.
非常感谢你!
我刚刚开始使用Ruby,我遇到了一种我无法解释的非常奇怪的方法行为.例如:
class String
def substitute
gsub("a", "b")
end
end
puts "aa".substitute # outputs: "bb"
Run Code Online (Sandbox Code Playgroud)
怎么会这样?我没有向'substitute'方法传递任何参数,它如何知道调用该gsub
方法的字符串?在gsub
可以省略的方法之前是否有一些不可见的属性?
在我看来,这是"常用"方法应该如何工作的方式.它得到了一个参数并对该数据进行操作.(但是,在前面的示例中,没有gsub
可以操作的数据?)
def substitute(arg)
arg.gsub("a", "b")
end
Run Code Online (Sandbox Code Playgroud) 我试图制作一个小的sqrtfunc,以便在今天的数学中减轻我的作业,但不知怎的,它不起作用.请你帮助我好吗?该程序只是找到给定数字的sqrt.
#include <stdio.h>
#include <math.h>
double sqrtfunc(double x);
int main(void)
{
double y;
scanf("%f", &y);
printf("%f", sqrtfunc(y));
return 0;
}
double sqrtfunc(double x) {
double value;
value = sqrt(x);
return value;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢你!
嗨!
我刚刚开始学习Java,我想知道在声明数组时是否有可能将数组元素放在多行中.
以下代码给出了一个错误:
public String[] songList = {'Stadium Arcadium', 'Make You Feel Better', 'Under The Bridge',
'Wet Sand', 'Californication', 'Charlie', 'Aeroplane', 'Transcending', 'Ethiopia'};
Run Code Online (Sandbox Code Playgroud)
非常感谢你!