请考虑以下代码:
namespace ConsoleApplication1 {
class Program
{
static void Main(string[] args)
{
Console.WriteLine(100.CompareTo(200)); // prints -1
Console.WriteLine(((decimal)100).CompareTo((decimal)200)); // prints -1
Console.WriteLine(((short)100).CompareTo((short)200)); // prints -100
Console.WriteLine(((float)100).CompareTo((float)200)); // prints -1
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,Int16上的CompareTo方法返回除-1,0和1以外的值有什么特殊原因吗?
ILSpy显示它以这种方式实现
public int CompareTo(short value)
{
return (int)(this - value);
}
Run Code Online (Sandbox Code Playgroud)
而这种方法是以这种方式在Int32上实现的
public int CompareTo(int value)
{
if (this < value)
{
return -1;
}
if (this > value)
{
return 1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 以下Python的最小/最大代码的C#等效项是什么:
pairs = [ (2,"dog"), (1, "cat"), (3, "dragon"), (1, "tiger") ]
# Returns the PAIR (not the number) that minimizes on pair[0]
min_pair = min(pairs, key=lambda pair:pair[0])
# this will return (1, 'cat'), NOT 1
Run Code Online (Sandbox Code Playgroud)
看来C#的Enumerable.Min非常接近。但是根据其MSDN文档,它总是返回最小化的VALUE(而不是原始对象)。我有什么想念的吗?
编辑
请注意 -我不倾向于首先通过排序来实现,因为排序(O(nlogn))在计算上比找到最小值(O(n))重。
另请注意 -词典也不是理想的方法。它不能处理键重复的情况-(1,“ cat”)和(1,“ tiger”)。
更重要的是,字典无法处理要处理的项目是复杂类的情况。例如,以年龄为关键字,找到一系列动物物体的最小值:
class Animal
{
public string name;
public int age;
}
Run Code Online (Sandbox Code Playgroud) 任何滑块都会添加像#&panel1-1网址末尾的哈希标记.
我试过hashtags:false但它不起作用.
有没有其他方法可以阻止它生成这些主题标签?
我喜欢XML
<Categories>
<category name="a">
<SubCategory>1</SubCategory>
<SubCategoryName>name1</SubCategoryName>
</category>
<category name="b">
<SubCategory>2</SubCategory>
<SubCategoryName>name2</SubCategoryName>
</category>
</Categories>
Run Code Online (Sandbox Code Playgroud)
我如何获得的值<SubCategoryName>从<category name="a">?
我试图根据List中每个项目的特定值将我的List分成不同的组,然后找到这些组中另一个值的平均值.
为了更好地说,我有一个学生名单:
List<Student> students = new List<Student> {
new Student { Name="Bob", Level=Level.Sophomore, GPA=3.2f },
new Student { Name="Cathy", Level=Level.Freshman, GPA=3.6f },
new Student { Name="James", Level=Level.Senior, GPA=3.8f },
new Student { Name="Jessica", Level=Level.Senior, GPA=3.7f },
new Student { Name="Derek", Level=Level.Junior, GPA=2.8f },
new Student { Name="Sam", Level=Level.Junior, GPA=3.1f }
};
Run Code Online (Sandbox Code Playgroud)
我想按照他们的班级对他们进行分组,因此他们将分为新生,二年级,初中和高年级.然后我希望能够获得这些组的平均GPA.
因此,为这些学生设置的可能结果将是:
Senior: 3.7
Junior: 2.9
Sophomore: 3.2
Freshman : 3.6
Run Code Online (Sandbox Code Playgroud)
我不太确定如何获得这个结果.我尝试了类似的东西,students.GroupBy(x => x.Level).Average();但它不起作用.
对此的任何想法将不胜感激.谢谢!
我正在为我的网站运行Joomla 2.5.1.
对于用户注册,只有名称,用户名,密码,确认密码,电子邮件地址和确认电子邮件地址.
我可以转到'用户配置文件'并启用地址,国家等字段.
但是,我想添加其他信息,如公司名称等.
我可以知道如何做到这一点?
假设我有2D列表,我想检查上一个/下一个元素是否等于某个东西.什么是确保我不会进入最好的方式list[-1][-1]还是list[len + 1][len + 1]?
这是我正在尝试做的一个例子:
if list[y + 1][x] == value and list[y - 1][x] == value:
do something
elif list[y][x + 1] == value and list[y][x - 1] == value:
do something else
... # end so on
Run Code Online (Sandbox Code Playgroud)
除了做以下事情,我看不到任何其他选项:
if y - 1 > 0 and y + 1 < len(list) and x - 1 > 0 and x + 1 < len(list[y]):
Run Code Online (Sandbox Code Playgroud)
哪个看起来不对......
这几行 python 3.2 代码使用最新的 pygame 模块来移动图像。它与这个例子有关:http : //www.pygame.org/docs/tut/MoveIt.html
这是我的代码:
import pygame
import sys
pygame.init()
screen = pygame.display.set_mode((600,400))
bg = pygame.image.load('bg.jpg')
player = pygame.image.load('player.jpg')
pos = player.get_rect()
while True:
for i in pygame.event.get():
if i.type() == pygame.QUIT:
sys.exit()
screen.blit(bg,(0,0))
screen.blit(player,(i,i))
pygame.display.update()
Run Code Online (Sandbox Code Playgroud)
这是我运行时遇到的错误:
回溯(最近一次通话):
文件“C:/Users/Grounds Keeper Willy/Desktop/Python Code/test.py”,第 12 行,在
if i.type() == pygame.QUIT:
TypeError: 'int'对象不可调用
我发现了类似的问题,但答案表明问题也使用函数名作为变量,这不是我正在做的。我似乎无法弄清楚这里出了什么问题。
如何从用户进行pygame打印输入:
我试图让用户键入一些东西,pygame将其打印在屏幕上.
这是我目前的计划:
import pygame, pygame.font, pygame.event, pygame.draw, string
from pygame.locals import *
def get_key():
while 1:
event = pygame.event.poll()
if event.type == KEYDOWN:
return event.key
else:
pass
def display_box(screen, message):
"Print a message in a box in the middle of the screen"
fontobject = pygame.font.Font(None,18)
pygame.draw.rect(screen, (0,0,0),
((screen.get_width() / 2) - 100,
(screen.get_height() / 2) - 10,
200,20), 0)
pygame.draw.rect(screen, (255,255,255),
((screen.get_width() / 2) - 102,
(screen.get_height() / 2) - 12,
204,24), 1)
if len(message) != 0:
screen.blit(fontobject.render(message, 1, …Run Code Online (Sandbox Code Playgroud) 我正在学习 Python 和 Pygame,我制作的第一件事是一个简单的 Snake 游戏。我试图让蛇每 0.25 秒移动一次。这是我循环的代码部分:
while True:
check_for_quit()
clear_screen()
draw_snake()
draw_food()
check_for_direction_change()
move_snake() #How do I make it so that this loop runs at normal speed, but move_snake() only executes once every 0.25 seconds?
pygame.display.update()
Run Code Online (Sandbox Code Playgroud)
我希望所有其他函数都能正常运行,但 move_snake() 每 0.25 秒只发生一次。我查了一下,找到了一些答案,但对于制作第一个 Python 脚本的人来说,它们似乎都太复杂了。
是否有可能实际获得我的代码应该是什么样子的示例,而不仅仅是告诉我需要使用哪个函数?谢谢!
python ×4
pygame ×3
c# ×2
.net ×1
compareto ×1
function ×1
javascript ×1
joomla ×1
jquery ×1
linq ×1
milliseconds ×1
python-3.x ×1
registration ×1
seconds ×1
typeerror ×1
vb.net ×1
xml ×1
xmlnode ×1