我正在尝试解决这个项目欧拉问题:
完美数字是一个数字,其正确除数的总和恰好等于数字.例如,28的适当除数之和为1 + 2 + 4 + 7 + 14 = 28,这意味着28是一个完美数.
如果n的适当除数之和小于n,则数n被称为不足,如果该和超过n,则称其为n.
由于12是最小的有限数,1 + 2 + 3 + 4 + 6 = 16,可以写成两个有限数之和的最小数是24.通过数学分析,可以显示所有整数大于28123可以写成两个数字的总和.然而,即使已知不能表示为两个充裕数的总和的最大数量小于该限制,也不能通过分析进一步减小该上限.
找到所有正整数的总和,这些正整数不能写为两个数字的总和.
我的解决方案
#returns a list of the divisors of a given number
def Divs(Number):
Divisors = []
for i in range(2 , int(Number**0.5) + 1):
if Number % i == 0:
Divisors.append(i)
for q in range(len(Divisors)):
if Divisors[q] != (Number / Divisors[q]):
Divisors.append(Number / Divisors[q])
Divisors.insert(0,1)
return Divisors
#returns a list of abundant numbers …Run Code Online (Sandbox Code Playgroud) 所以我正在学习使用NASM语法的x86 Linux程序集(哦,上帝,不是这个,你们都在考虑).我正在尝试创建一个子程序,只需将EAX中的值打印到stdout即可.代码运行并退出而没有错误,但没有打印.我无法弄清楚为什么.首先,这是我正在处理的文件:
segment .bss
to_print: resd 1
segment .text
global print_eax_val
print_eax_val: ; (top)
push dword ebx ;Stack: edx
push dword ecx ; ecx
push dword edx ; ebx
; (bot)
mov ecx,eax ;ecx = eax
mov [to_print],ecx ;to_print = ecx
mov eax, 4 ;sys_write
mov ebx, 1 ;to stdout
add ecx, 47 ;add 47 for ASCII numbers
mov edx, 2 ;double word = 2 bytes
int 0x80
mov eax, [to_print] ;eax = original val
pop edx ;pop …Run Code Online (Sandbox Code Playgroud) 在 QWebView 中,我使用 QWebView.setHtml() 动态创建和加载 HTML。在我传递给此方法的 HTML 字符串中,有一个<style>部分可以从外部文件注入 CSS 字符串。除了字体系列之外,CSS 运行良好。字体始终回退到 QWebView 默认的无衬线字体。我可以使用 更改默认字体QWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif"),但这只会使页面上的所有内容都成为衬线字体,而不是遵循 CSS 字体系列值。
我的 CSS 文件中的相关部分:
.page-title {
color:#BBBBBB;
font-family:"Times New Roman",Garamond,serif;
}
Run Code Online (Sandbox Code Playgroud)
这不会按预期呈现为衬线字体,而是呈现为通用无衬线字体。但是,颜色显示没有问题。
有一次,为了进行调试,我在调用 QWebView.setHtml() 之前打印了完整的 HTML 字符串,并将输出重定向到一个文件。当我在 Chromium 中打开该文件时,它按预期呈现,这让我相信问题不是HTML /CSS 问题。如果您感兴趣的话,这是该输出。
编辑:因为我在这里设置了赏金,所以这里有一个快速的tl;dr,它应该总结所有重要的内容:
使用 PySide,如何使 QWebView 在通过 QWebView.setHtml() 加载的 HTML 页面中遵循 CSS 字体系列设置?具体来说,是否有一些秘密的隐藏设置可以打开和关闭这种行为?或者我应该将其报告为框架中的错误?
如果您想亲自测试一下,这里是我正在开发的项目的 GitHub 存储库的链接。自述文件中列出了依赖项。
我试图在Python中使用pygame为应用程序设计简单的控件.我已经掌握了基础知识,但我正在碰到一个奇怪的墙:我正在使用箭头键来控制我的角色.如果我按住一个箭头键,然后按住另一个箭头键(对角线移动),角色会按预期移动.但是,如果我释放我按下的第二个键(同时仍然按住第一个键),即使我仍然按住第一个键,角色也会停止移动.这是我的简单动作代码:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if pygame.key.get_pressed()[K_LEFT]:
player.pos = (player.pos[0] - 2, player.pos[1])
if pygame.key.get_pressed()[K_RIGHT]:
player.pos = (player.pos[0] + 2, player.pos[1])
if pygame.key.get_pressed()[K_UP]:
player.pos = (player.pos[0], player.pos[1] - 2)
if pygame.key.get_pressed()[K_DOWN]:
player.pos = (player.pos[0], player.pos[1] + 2)
Run Code Online (Sandbox Code Playgroud)
现在,我自然很困惑.所以我试着打印一些线来调试.在主控制循环的顶部,我写道:
print (pygame.key.get_pressed()[K_DOWN], pygame.key.get_pressed()[K_RIGHT])
print pygame.event.get()
Run Code Online (Sandbox Code Playgroud)
...输出显示向下和向右箭头键状态的元组,然后显示pygame事件队列.我的结果让我更加困惑.如果我角色的移动对角线向下和向右,按向下键,然后再右键,然后松开右键,使其简单地向下移动,字符停止为移动之前......但是这是印到shell:
(1, 0)
[]
Run Code Online (Sandbox Code Playgroud)
也就是说,当我释放右箭头键并仍然按住向下箭头键时,pygame.key.get_pressed()知道向下箭头键仍然被按下,但事件队列中没有任何内容.
此外,在代码的早期(在控制循环之前)我正在调用
pygame.key.set_repeat(1, 2)
Run Code Online (Sandbox Code Playgroud)
在按住键的同时使角色继续移动.
任何帮助将不胜感激!谢谢 :)
我正在处理Haskell中的一些图形问题.在我的工作中,我决定我希望能够在图形数据类型中表示边缘颜色.所以我从边缘开始:边缘可以是彩色的也可以是未着色的.这是我正在思考的一个快速模型.请记住,我知道此代码中存在可怕的缺陷.
data BasicEdge v w = BasicEdge { b_endpoints :: (v,v), b_weight :: w}
data ColoredEdge v w c = ColoredEdge { c_endpoints :: (v,v), c_weight :: w, color :: c}
class Edge e where
endpoints :: e -> (v,v)
weight :: e -> w
instance Edge (BasicEdge v w) where
endpoints = b_endpoints
weight = b_weight
instance Edge (ColoredEdge v w c) where
endpoints = c_endpoints
weight = c_weight
Run Code Online (Sandbox Code Playgroud)
问题1:v和w在BasicEdge比不同类型的变量v和w在ColoredEdge.因此,试图以多态方式访问它们是荒谬的.
问题2:在边缘类定义的返回值是游离型的变量,所以他们不能用的返回值进行匹配 …