Questions tagged «python»

这个挑战与Python语言有关。请注意,通常不建议要求答案使用特定语言的挑战。

2
最快的python代码,可在此游戏中找到一组获胜的单词
这是一组针对儿童的活动卡片中的文字游戏。规则下方是使用/ usr / share / dict / words查找最佳三元组的代码。我认为这是一个有趣的优化问题,想知道人们是否可以找到改进的地方。 规则 从下面的每组中选择一个字母。 使用所选字母(和其他字母)选择一个单词。 得分。 所选集合中的每个字母都会获得该集合中显示的数字(包括重复项)。 AEIOU 数0 其他所有字母均为-2 重复两次以上的步骤1-3(不要在步骤1中重复使用字母)。 最终分数是三个单词分数的总和。 套装 (设置1分1分,设置2分2分,依此类推) LTN RDS GBM 热电联产 FWV YKJ QXZ 码: from itertools import permutations import numpy as np points = {'LTN' : 1, 'RDS' : 2, 'GBM' : 3, 'CHP' : 4, …

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

30
从原动力中恢复原动力
定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数p n > 1,返回素数p。 测试用例: input output 9 3 16 2 343 7 2687 2687 59049 3 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

1
Python清单中最常见的元素
这是使用Python打高尔夫球的提示问题,这是main的主题。 我正在寻找以最短的方法获取Python列表中所有最常见元素的最短方法。这是我尝试过的方法,假设列表位于一个名为的变量中l: from statistics import* mode(l) 如果存在多种模式,则会引发错误。 max(l,key=l.count) 这仅返回1个项目,我需要获取所有具有最大数量的元素。 from collections import* Counter(l).most_common() 这将返回的元组列表(element, count),按计数排序。从中我可以拉出所有相应元素等于第一个元素的所有元素,但是我认为没有比这更好的高尔夫方法了: from collections import* c=Counter(l).most_common() [s for s,i in c if i==c[0][1]] 我敢肯定有更短的方法! 另外,如果可以在不进行变量分配或不使用的情况下完成此操作l,则我可以将其余代码保留为lambda表达式,以节省更多字节。 编辑:根据@Uriel的建议,我们可以执行以下操作: {s for s in l if l.count(s)==l.count(max(l,key=l.count))} 我可以别名list.count几个字节: c=l.count;{s for s in l if c(s)==c(max(l,key=c))} @Uriel指出我们可以通过以下方式获得更多的字节map: c=l.count;{s for s in l …
13 code-golf  tips  python 

7
筷子用KoTH点突变
基本规则(与我的不同) 故事 现在是4579年,人类现在有2只手,每只手有1001个手指。筷子已变得毫无根据。而且@Dennis比@Martin代表更多...手绘红色圆圈现在已被否决... Jon Skeet在每个SE网站上都达到2万亿代表...是的,我知道 筷子是一个已经解决的手游戏。因此,为了解决这个问题,我创建了它的变异体。我增加了手指的数量。 游戏规则 播放方式 每个人都从两只手开始。每只手有1001根手指。每只手都以每只手上的一根(一根)手指开始。在回合中,您可以“击中”其他玩家的手。要进行击中,请选择一只手来进行打击,然后选择一只手来进行打击。现在,被击中的手的手指数量与刚开始时的手指数量相同,并且在您用其击打时手上的手指数量也是如此。 前 P1: 1,1 P2: 1,1。P1[0]命中P2[1]。现在手指在P1:1,1 P2:1,2。现在P2[1]点击p1[0]。现在,手指为P1:3,1P2 1,2。 如果一只手的手指向上伸出1001或更多,则那只手伸出。然后,获得帮助的玩家(轮到他们)可以“分开”。分裂是指将手伸进去并且将手指的数量减半(向上舍入),然后将这些手指放在另一只手上,将其重新伸入。 前 P1:1000,2P2 7,7。P2[0]命中P1[0]。分数为P1:0,2P2 1,1。P1[1]轮到他拆分,得分为P1:1,1和P2 7,7。 当一名玩家举手时游戏结束。得分由获胜者的手指数量来得分。积分越多越好。失败者一分未得。 使用了其他规则,但是这里使用了这些规则。 每个人都扮演所有人(循环赛) 结束游戏 从您赢得的每一轮中累计您的积分。然后平均每个人的分数。将您的总数除以平均分,得出最终分数。多数积分获胜。 实际规则 标准漏洞 请不要不尝试解决游戏。我实际上必须能够运行它:P 确保机器人可以快速运行。判断轮数需要一段时间 程序中需要的所有库都必须位于默认的python库中。同时列出您需要导入的文件。进口也只是基本的进口(在数学我做的:import math) 答案必须在Python 3.x中有效 处理程序 您的机器人将是带有play功能的自己的Python 3文件。 play将通过两个分别由两个数字组成的列表。该数字表示每只手上的手指数。第一个清单是您自己的手。 如果您选择打对方的手,则返回两位列表。第一位是您用来击打的手的索引(对于第一手0,1最后一位),第二位是您在对手上击打的手的索引。 如果选择拆分,则返回任何其他真实值。 多田! 控制器可以在这里找到。将每个漫游器保存在自己的文件中,并在中列出每个漫游器的文件名(不带.py)botnames。 最后说明: 您和其他漫游器将首先轮流使用。如果游戏没有在100,000(十万)回合中终止,则该游戏将终止并且任何机器人都不会赢。 不能保护控制器免受永久性移动的困扰,但是不必要的开销将被强烈反对。

4
使用算术表达式表示给定大整数的策略
我有一个特定的数字,但这是我正在面临的挑战的一部分,并且我不希望人们为我做(所有)工作。 这是一个具有相同数字但乱序的数字: 5713167915926167134578399473447223554460066674314639815391281352328315313091488448321843 8892917486601064146636679920143691047671721184150386045081532202458651561779976236919751 5521854951599379666116678853267398393892536121049731949764192014193648608210652358947001 6332620900065461061195026191178967128001712341637591690941978871368243245270800684616029 6679555942849366434586090627998161441134473428845367022486230724219981658438108844675033 4461550796750244527407413996606134735852639191026103378962082622204359677030054592798927 4145951979523473408718011778751084514127053772614511042703365596651912104541233491744530 87457854312602843967491787086250478422477028164189 该数字有666位数字(十进制)。因为我使用的是Python,所以整数(或从技术上讲是long)会自动为bignums。 我有255个字符,需要描述相同的数字。该描述旨在通过eval()运行以产生原始编号。 我应该考虑什么策略?

1
在Python中逐项串联字符串列表
这是在python中打高尔夫球的提示问题。 假设您有两个字符串列表,并且想要连接每个列表中的相应条目。例如,用a=list("abcd")和b=list("1234")计算["a1","b2","c3","d4"]。 在基于数组的编程语言中,这是微不足道的,在这种语言中,操作通常以成员方式应用于列表。例如,在我的高尔夫语言Pip中,代码就是a.b。但是在Python中,这并不容易。 Python方式可能是使用zip列表理解(25个字符): [x+y for x,y in zip(a,b)] 另一种方法是map使用lambda函数(23): map(lambda x,y:x+y,a,b) 以下是我想出的最短的(21): map("".join,zip(a,b)) 有没有更短的方法? 假设列表的长度相同,并且只需要某种可迭代的内容(因此map在Python 3中可以使用对象)。
13 code-golf  tips  python 

3
自动元代码高尔夫球
您已经厌倦了所有的代码高尔夫挑战。因此,您决定编写一个程序,该程序将自动为您编写一些Python代码。有3个测试用例: print quickSort([0,7,3,-1,8,10,57,2]) def quickSort(arr): less = [] pivotList = [] more = [] if len(arr) <= 1: return arr else: pivot = arr[0] for i in arr: if i < pivot: less.append(i) elif i > pivot: more.append(i) else: pivotList.append(i) less = quickSort(less) more = quickSort(more) return less + pivotList …
13 python  metagolf 

4
在python的128个字节内获得最低的pylint分数
pylint没有分数的下限,它将给您的代码。它使用以下指标对代码进行评分,最高分为10: 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) 使用python 3.6,尝试编写一个程序: 从命令行运行时输出“ Hello World”(即python script.py),没有其他输出。 在pylint默认设置下,从中获取最低的得分(例如pylint script.py) 严格小于或等于128个字节。

2
如何缩短此python代码?
这是我要缩短的代码。 n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 输入3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 输出: black yellow black
12 code-golf  tips  python 

19
KOTH-加载的RPS
竞赛永久开放-2017年8月10日更新 即使在2017年6月5日,我宣布了一个获胜者(他将被保留为最佳答案),我仍将选择新的机器人并更新结果。 6月5日的结果 恭喜用户1502040 由于没有平局,我只显示获胜的百分比。 Statistician2-95.7% Fitter-89.1% Nash-83.9% Weigher-79.9% ExpectedBayes-76.4% AntiRepeater-72.1% Yggdrasil-65.0% AntiGreedy-64.1% Reactor-59.9% NotHungry-57.3% NashBot-55.1% Blodsocer-48.6% BestOfBothWorlds-48.4% GoodWinning-43.9% Rockstar-40.5% ArtsyChild-40.4% Assassin-38.1 % WeightedRandom-37.7% Ensemble-37.4% UseOpponents-36.4% GreedyPsychologist-36.3% TheMessenger-33.9% Copycat-31.4% Greedy-28.3% SomewhatHungry-27.6% AntiAntiGreedy-21.0% Cycler-20.3% Swap-19.8% RandomBot-16.2% 我使用每个配对结果的网格创建了一个Google表格:https : //docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit? usp =sharing 多亏了陪替氏困境,我发现自己能够应付这位山丘之王。 游戏 游戏是一个简单的“石头剪刀布”,带有扭曲:游戏中每次胜利都会增加点数(加载R,P或S)。 纸胜摇滚 剪刀胜纸 摇滚胜剪刀 获胜者获得的积分与其在游戏中的负担一样多。 失败者的游戏负担增加1。 在平局的情况下,每个玩家的游戏负担增加0.5。 经过100场比赛,获胜者将获得更高分。 …

5
在Python脚本中添加注释,并使其成为双语的Python / C ++“程序”
给定以下Python 3脚本: def greet(): print("Hello, world!") greet() 前面加上一些行该文本文件,以便它可以同时作为一个Python程序执行以及编译和运行一个C ++程序产生相同的输出你好,世界!(包括末尾的换行符): $ python3 bilingual.py.cpp Hello, world! $ g++ bilingual.py.cpp && ./a.out Hello, world! 该解决方案将通过整个程序的非空白字符计数来评分,包括Python脚本: sed 's/\s//g' bilingual.py.cpp|wc -c

1
编写应急脚本,以从不受信任的本地用户远程保护Mac Pro。
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 情况 假设我允许我的工作站上的“ Shady Sam”管理员访问权限通过为他们提供一个临时的root登录密码来为我在Mac Pro上执行一项重要的管理任务。(假设他们是值得信赖的,也许是我公司的系统管理员。) 在远程位置(例如家庭),我使用MacBook Pro笔记本电脑观察Sam的活动,并学习如何通过远程桌面(VNC)自己完成任务。 在没有警告的情况下,谢迪·萨姆(Shady Sam)怯da地做着什么!也许我看到他试图从硬盘驱动器中删除数据或撬入受限制的文件夹等。无论多么卑鄙的行为,我都想立即将Shady Sam锁定,并尽可能从远程位置保护计算机。 由于我们共享鼠标和键盘,因此我无法在远程桌面内部可靠地执行操作(此外,它们可以关闭连接)。我必须编写一个脚本并远程运行它。 挑战 什么是最好的脚本(例如panicScript.sh或panicScript.py),我可以远程运行以阻止Shady Sam执行其卑鄙的行为并阻止他再次尝试? 我设想自己可以通过以下方式运行它: scp panicScript.sh remoteMachine:~/panicScript.sh ssh remoteMachine . ~/panicScript.sh 可能的功能: 明确鼓励其他想法! 更改remoteMachine上任何/所有帐户的密码 禁用键盘或鼠标 禁用显示器 重新启动机器 假设条件 Shady Sam不会以任何方式损坏Mac Pro或删除其任何组件(例如,物理上删除硬盘驱动器或有线网络连接),但他将尝试重新登录并尽快执行其卑鄙行为。Sam具有(否则)对计算机的无限制物理访问权限和root登录密码。 假设Mac Pro具有显示器,键盘,鼠标,外部硬盘驱动器和用于互联网的以太网连接。假设它可以在公共区域中打印到网络打印机。为了好玩,让我们假设我在几个同事的工作站上有一个标准用户帐户,该帐户与我的相同(因此我可以通过来连接到他们的机器ssh)。 假设有十几个露天小卧室聚集在一起,以便同事可以站起来互相交谈。但是,我的同事们通常不会怀疑Shady Sam如果在我的计算机上看到他时会做出卑鄙的举动,因为他过去曾帮助过其中的几个人,并且没有对他们的计算机做过卑鄙的事情。 约束条件 最初,恐慌脚本位于我的笔记本电脑上。您可以将scp其安装到我的机器上并在那里运行,也可以直接从家里的笔记本电脑运行它。(请在您的回复中指定!) 脚本执行的所有操作都必须在远程位置无损坏和/或可逆,以便以后可以从远程位置重新获得访问权限,并且必须是Mac Pro上的标准功能/命令。 该脚本可以调用其他脚本/程序,只要它们是计算机的标准配置即可。命令行脚本工具(例如awk)可以,只要它们的命令包含在主脚本中(例如history | …

1
我是否正确进行代码搜寻?
我很好奇我是否正确打高尔夫。我为自己提出了一个挑战,那就是如何在Python中将小型哈希程序编写为单个语句。我首先开始: from itertools import permutations from string import ascii_lowercase from random import sample def test(): chars = sample(ascii_lowercase, 9) sums = list(map(h, permutations(chars))) if len(set(sums)) == len(sums): print("unique results for permutations of given string") else: print("duplicate entries present in test results") def h(s): r = 0 for i in range(len(s)): …
12 code-golf  tips  python 

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.