คำถามติดแท็ก python

ความท้าทายนี้เกี่ยวข้องกับภาษา Python โปรดทราบว่าความท้าทายที่ต้องใช้คำตอบในภาษาใดภาษาหนึ่งนั้นเป็นสิ่งที่ท้าทาย

4
บทคัดย่อการเล่นกอล์ฟแผนภูมิต้นไม้: FizzBuzz, Python
สรุป ใช้ FizzBuzz ใน Python พร้อมกับโทเค็นที่น้อยที่สุดที่เป็นไปได้ ท้าทาย เขียนโปรแกรมที่พิมพ์ตัวเลขทศนิยมตั้งแต่ 1 ถึง 100 แต่สำหรับทวีคูณของสามพิมพ์ "Fizz" แทนจำนวนและสำหรับทวีคูณของห้าพิมพ์ "Buzz" สำหรับตัวเลขที่เป็นทวีคูณของทั้งสามและห้าพิมพ์“ FizzBuzz” โปรแกรมจะต้องเขียนใน Python บางเวอร์ชัน สำหรับรายละเอียดเพิ่มเติมดู1, 2, Fizz, 4, Buzz เกณฑ์การให้คะแนน คะแนนของคุณจะเท่ากับจำนวนโหนดในต้นไม้ไวยากรณ์นามธรรมของรหัสของคุณตามที่รายงานโดยโปรแกรมนี้สำหรับหลาม 3หรือโปรแกรมนี้สำหรับงูหลาม 2 ในการรันโปรแกรมให้ระบุชื่อไฟล์ของรหัสของคุณเป็นอาร์กิวเมนต์บรรทัดคำสั่งของโปรแกรม ตัวอย่างเช่น python simple_counter.py fizzbuzz.py โปรแกรมเหล่านี้จะตามออกของ ธโมดูล AST หากคุณมีปัญหาใด ๆ แจ้งให้เราทราบ เพื่อป้องกันการแก้ปัญหาที่ไม่สำคัญเช่นการรันสตริงแบบยาวด้วยโปรแกรมจริงหรือการเข้ารหัส hardcoding เอาต์พุตมีข้อ จำกัด เพิ่มเติมบางประการ: ไม่มีโทเค็นในรหัสของคุณอาจยาวเกิน 15 อักขระ โปรแกรมด้านบนจะตรวจสอบข้อกำหนดนี้สำหรับคุณ โปรดทราบว่าเพื่อความสะดวกในการนำไปใช้งานโปรแกรมด้านบนจะนับความคิดเห็นเป็นโทเค็น …

12
สคริปต์ python ที่เล็กที่สุดในการพิมพ์เลข 0 ถึง 100
ฉันทำงานกับปัญหาที่ฉันตั้งตัวเองเพื่อความสนุกสนานซึ่งก็คือการสร้างสคริปต์หลามซึ่งพิมพ์ตัวเลขคู่จาก 0 ถึง 100 ความท้าทายคือการทำให้สคริปต์มีขนาดเล็กที่สุดเท่าที่จะทำได้ นี่คือสิ่งที่ฉันมี: for x in range(0, 101): if (x % 2 == 0): print x ปัจจุบันมีขนาด 60 ไบต์ มีใครคิดวิธีที่จะทำให้มันเล็กลงได้ไหม? แก้ไข: print(*range(2,101,2),sep='\n')ซึ่งคือ 30 ไบต์ เล็กกว่านี้ไหม?
11 code-golf  tips  python 

9
แลกเปลี่ยนช้างเผือก
เป็นวันคริสต์มาสในเดือนกรกฎาคมดังนั้นจะมีวิธีใดที่ดีไปกว่าการเฉลิมฉลองการแลกเปลี่ยนของขวัญช้างเผือกเสมือนจริง! สำหรับการท้าทาย King of the Hill นี้คุณต้องสร้างบอทที่เล่นในการจำลองการแลกเปลี่ยนช้างเผือกพยายามที่จะได้รับของขวัญที่มีค่าสูงสุดเท่าที่จะทำได้ กฎของเกม เกมจะเล่นในหลายรอบแต่ละรอบประกอบด้วยจำนวนรอบที่แตกต่างกัน การตั้งค่ารอบ : จะมีของขวัญให้มากที่สุดเท่าที่มีผู้เล่นในเกมแต่ละค่าจะมีการสุ่มอย่างสม่ำเสมอในช่วง [0 ... 1) ด้วยค่านี้จะไม่เป็นที่รู้จักจนกว่าจะมีการเปิด "ปัจจุบัน" ผู้เล่นจะถูกสุ่มวางในคิว ผู้เล่นคนแรกจะถูกตอกจากด้านหน้าคิว เมื่อถึงคราวของผู้เล่นพวกเขาอาจจะเปิดของขวัญหรือขโมยของขวัญของผู้เล่นคนอื่นผ่านหันไปหาผู้เล่นที่ถูกขโมยในปัจจุบัน ของขวัญแต่ละชิ้นอาจถูกขโมยได้สูงสุด 3 ครั้ง คุณไม่สามารถขโมยจากผู้เล่นที่ขโมยมาจากคุณ ผู้เล่นแต่ละคนสามารถมีเพียงหนึ่งครั้งในปัจจุบัน หลังจากเปิดของขวัญเล่นไปยังผู้เล่นคนต่อไปที่โผล่ออกมาจากด้านหน้าของคิว นี่จะเป็นผู้เล่นคนถัดไปตามลำดับที่ยังไม่ได้เทิร์น รอบสุดท้าย : เมื่อเปิดของขวัญทั้งหมดแล้วรอบนั้นจะสิ้นสุดลงและมูลค่าของของขวัญที่ผู้เล่นแต่ละคนถืออยู่จะถูกเพิ่มเข้าไปในคะแนนของผู้เล่นนั้น รอบใหม่เริ่มต้นขึ้นโดยผู้เล่นแต่ละคนจะไม่มีของขวัญและผู้เล่นสั่งสับ Game End : เกมจะจบลงเมื่อผู้เล่นอย่างน้อยหนึ่งคนมีคะแนน100 500 คะแนนโดยชัยชนะจะมอบให้กับผู้เล่นที่มีมูลค่ารวมสูงสุดของของขวัญ การเข้ารหัส การส่งทั้งหมดควรเข้ากันได้กับ Python 3.7 WhiteElephantBotคุณต้องเขียนชั้นเรียนที่สืบทอดโดยตรงจาก ตัวอย่างเช่น class FooBot(WhiteElephantBot): # Your implementation here คุณอาจจะให้__init__วิธีการ …

2
Camel Up Cup: การแข่งขันเกมกระดาน AI
Camel Up Cup 2k18 ในความท้าทายนี้เราจะเล่นเกมกระดานที่ได้รับความนิยมอย่าง Camel Up อูฐ! เป็นเกมกระดานที่มีผู้เล่นวางเดิมพันบนอูฐเพื่อชนะรอบชนะเกมหรือแพ้เกมตั้งกับดักที่มีอิทธิพลต่อการเคลื่อนไหวหรือย้ายอูฐ การตัดสินใจแต่ละครั้งจะให้รางวัลแก่คุณเมื่อมีโอกาสได้รับเงินซึ่งเป็นสิ่งที่กำหนดผู้ชนะ ผู้เล่นควรใช้ความน่าจะเป็นข้อควรพิจารณาเกี่ยวกับสถานะเกมและการครอบครองคู่ต่อสู้เพื่อทำการตัดสินใจ นี่คือวิดีโอสั้น ๆ แสดงผู้เล่นวิธีการเล่น วิธีการเล่น นี่คือความคิดคร่าวๆของวิธีการเล่น การดูวิดีโออย่างใดอย่างหนึ่งอาจมีประโยชน์มากกว่าเพราะมีภาพ :) ในเทิร์นของคุณคุณมี 4 ตัวเลือก ย้ายอูฐ นี่เป็นการเลือกอูฐจากผู้ที่ไม่ได้ย้ายและย้ายระหว่าง 1-3 ช่องว่าง คุณได้รับ 1 เหรียญ รอบสิ้นสุดเมื่ออูฐทั้งห้าเคลื่อนไหวแล้วพวกเขาก็สามารถเคลื่อนไหวได้ทั้งหมด วางกับดัก สิ่งนี้จะปรากฏบนกระดานจนกระทั่งสิ้นสุดรอบ คุณเลือก +1 กับดัก หากอูฐหรืออูฐสแต็คตกลงมาพวกมันจะเคลื่อนที่ +1 และคุณจะได้รับเหรียญ คุณไม่สามารถวางกับดักในสี่เหลี่ยมจัตุรัสคุณสามารถวางกับดักที่ที่อูฐอยู่แม้ว่ามันจะมีผลกับอูฐที่ตกลงมาบนหลังเท่านั้น เดิมพันผู้ชนะรอบ คุณเดิมพันกับผู้ชนะรอบ พวกเขาชนะคุณจะได้รับ 5/3/2/1 ทั้งนี้ขึ้นอยู่กับว่าคุณเป็นคนที่ 1/2/3 เพื่อเดิมพันกับอูฐนั้น ผู้ชนะเกม / ผู้แพ้ คุณเดิมพันว่าใครจะเป็นคนแรกหรือคนสุดท้ายในตอนท้ายของเกม คุณได้รับ …

2
เคล็ดลับสำหรับการเล่นกอล์ฟแบบ numpy, scipy หรือ pylab
แล้วมีรายการที่ครอบคลุมของเคล็ดลับสำหรับการหลามที่นี่ดังนั้นสิ่งที่ฉันขอเป็นเคล็ดลับที่เฉพาะนำไปใช้กับการใช้numpy, scipyหรือpylabห้องสมุด สิ่งเหล่านี้อาจเป็นวิธีการย่อรหัสที่ใช้ไปแล้วnumpyหรือวิธีการลดขนาดการดำเนินการของงูใหญ่โดยใช้ไลบรารีเหล่านี้ กรุณาหนึ่งเคล็ดลับต่อคำตอบ
10 code-golf  tips  python 

1
หลามสั้นที่สุดโปรแกรม A + B พร้อมอินพุทและเอาท์พุท
พวกคุณบางคนอาจพูดว่าฉันกำลังเสียเวลา แต่งานนี้ไม่ได้ทำให้ฉันสงบสุขมานานกว่า 500 วัน จำเป็นต้องเขียนโปรแกรมในPython 3.xซึ่งรับค่าตัวเลขสองตัวเป็นอินพุตและแสดงผลรวม ตัวเลขจะได้รับในรูปแบบต่อไปนี้: a b ตัวอย่างกรณีทดสอบ: 100 500 -> 600 3 4 -> 7 ความยาวของรหัสที่มีการคำนวณด้วยสูตรสูงสุด (ความยาวรหัสโดยไม่มีช่องว่างหรือแท็บหรือการขึ้นบรรทัดใหม่ความยาวรหัส / 4) ฉันรู้เพียง 2 ทางแก้ปัญหาแต่ละข้อมีความยาว 36 ตัวอักษร: print(sum(map(int, input().split()))) และ: print(eval(input().replace(' ', '+'))) ฉันรู้แล้วว่าทางออกที่มีอยู่มีความยาว 34 สัญลักษณ์ คุณสามารถตรวจสอบได้ในเว็บไซต์นี้
10 code-golf  tips  python 

1
วิธีการค้นหารายการในรายการที่มี f (รายการ) มีขนาดเล็กที่สุด?
ฉันมีรายชื่อและฟังก์ชั่นl ไม่ได้เพิ่มหรือลดลงอย่างเคร่งครัด ฉันจะค้นหารายการในรายการที่มีขนาดเล็กที่สุดได้อย่างไร ตัวอย่างเช่นสมมติว่ารายการคือ:fff(item) l = [1, 2, 3, 4] และlist(f(x)for x in l)คือ: [2, 9, 0, 3] f(3)เล็กกว่า f ของอันอื่นดังนั้นควรพิมพ์ "3" วิธีที่สั้นที่สุดในการทำเช่นนี้คืออะไร? ตอนแรกฉันพยายาม: min(f(x) for x in l) แต่นี้จะช่วยให้ไม่ได้0 3หากฉันกำลังถ่ายภาพเพื่อความสะดวกในการอ่านไม่กระชับฉันจะทำ: index = 0 smallest = f(l[0]) for i in range(len(l)): value = f(l[i]) if value < smallest: smallest = …
10 code-golf  tips  python 

7
Python ที่ไม่ใช่ idempotent [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว เขียนโค้ด Python สองสามบรรทัดXซึ่งไม่ได้อ้างอิงตัวแปรโกลบอลใด ๆ เช่นนั้น def method(): X print(a) method() พิมพ์1แต่ def method(): X X print(a) method() 2พิมพ์ ดังนั้นฉันเกลียดที่จะเป็น stickler แต่ดูเหมือนว่าvarsและlocalsเป็นตัวแปรทั่วโลกใน Python: def test_global_1(): global vars, locals vars = lambda: 2 locals = lambda: 3 def test_global_2(): print(vars()) print(locals()) …

2
Python: วิธีที่สั้นที่สุดในการแทรกรายการจากสองรายการ
ฉันกำลังพยายามหาวิธีที่สั้นที่สุด (ตัวละครที่เป็นไปได้) เพื่อรับรายการ 3 รายการที่ 1 และรายการที่ 2 ได้รับมาให้ฉันเป็นอาร์กิวเมนต์แล้วและมีความยาวเท่ากัน l1 = [1, 2, 3, 4, 5] l2 = ['a', 'b', 'c', 'd', 'e'] และรายการ 3 ควรมีลักษณะ (ใช่ต้องเป็นรายการ): l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]

1
Python 3 พยายามเล่นกอล์ฟที่ได้รับมอบหมาย
หมายเหตุ:นี่ไม่ใช่ความท้าทายในการเล่นกอล์ฟมากนัก มันมากขึ้นดังนั้นขอคำแนะนำการเล่นกอล์ฟ เมื่อเร็ว ๆ นี้ฉันมีการกำหนด Python สำหรับคลาสการพัฒนาเว็บของฉันเพื่อตรวจสอบว่าเราสามารถใช้รหัสได้หรือไม่ เนื่องจากฉันรู้สึกสบายใจกับ Python ฉันจึงตัดสินใจลองเล่นกอล์ฟและฉันก็สงสัยว่าผู้คนจะชี้ให้เห็นสิ่งที่ฉันพลาดไปได้ไหม ฉันรู้แล้วว่ามีช่องว่างเพิ่มเติมในบางสถานที่ แต่ฉันสนใจสิ่งต่าง ๆ ในเชิงแนวคิดมากกว่าเช่นใช้while r:เมื่อ r เป็นตัวแปรแล้วรอให้ "หมด"! งานที่ได้รับมอบหมาย import random from collections import Counter s=l='' c=['yellow','blue','white','green','Black', 'purple', 'silver', 'cyan', 'magenta', 'red'] n=[10,15,1,10,6,15,10,25,1,12,5,10,4,6,5,12,0,10,1,1] o=i=0 for y in c:l+=y[0]*(random.randint(n[o],n[o+1]));o+=2 l=list(l) print("Welcome to the CIMS Gumball Machine Simulator\nYou are starting with the …

3
เชื่อมต่อบางส่วนที่สังเกตได้ 4
เกม คุณจะได้รับการเล่น (เกือบ) เกมมาตรฐานของการเชื่อมต่อ-4 น่าเสียดายที่มันเป็นเกมการติดต่อทางจดหมายและมีคนวางเทปสีดำลงในแถวที่สองทุก ๆ แถวโดยเริ่มจากด้านล่างเพื่อที่คุณจะได้ไม่เห็นการเคลื่อนไหวของคู่ต่อสู้ในแถวเหล่านี้ การเคลื่อนไหวใด ๆ ภายในคอลัมน์ที่เต็มไปแล้วจะนับว่าผ่านการเทิร์นของคุณและหากเกมใดที่ใช้งานเกินกว่า6 * 7เทิร์นมันจะถูกตัดสินว่าเป็นการเสมอ สเปคท้าทาย โปรแกรมของคุณควรใช้งานในรูปแบบ Python 3 อาร์กิวเมนต์แรกคือ 'มุมมอง' ของกระดานซึ่งแสดงถึงสถานะกระดานที่รู้จักในชื่อ 2D แถวจากล่างขึ้นบนซึ่ง1เป็นการย้ายโดยผู้เล่นคนแรก2การย้ายโดยผู้เล่นคนที่สองและ0ตำแหน่งว่างหรือซ่อน ย้ายโดยฝ่ายตรงข้ามของคุณ อาร์กิวเมนต์ที่สองคือหมายเลขเทิร์นอินที่จัดทำดัชนีจาก0และพาริตีของมันจะบอกคุณว่าคุณเป็นผู้เล่นรายใด อาร์กิวเมนต์สุดท้ายคือสถานะโดยพลการเริ่มต้นNoneที่จุดเริ่มต้นของแต่ละเกมซึ่งคุณสามารถใช้เพื่อรักษาสถานะระหว่างรอบ คุณควรคืนค่า 2 คอลัมน์ของดัชนีคอลัมน์ที่คุณต้องการเล่นและสถานะใหม่ที่จะส่งคืนให้คุณในเทิร์นถัดไป เกณฑ์การให้คะแนน นับเป็นชัยชนะ+1วาดเป็นและสูญเสียเป็น0 -1เป้าหมายของคุณคือเพื่อให้ได้คะแนนสูงสุดโดยเฉลี่ยในทัวร์นาเมนต์ round-robin ฉันจะพยายามวิ่งแข่งให้ได้มากที่สุดเท่าที่จำเป็นเพื่อระบุผู้ชนะที่ชัดเจน กฎระเบียบ ผู้แข่งขันใด ๆ ควรมีบอทที่แข่งขันกันมากที่สุดในแต่ละครั้ง แต่มันก็โอเคที่จะอัพเดทข้อมูลของคุณถ้าคุณทำการปรับปรุง โปรดลอง จำกัด บอตของคุณให้เหลือเวลาคิดประมาณ 1 วินาที การทดสอบ นี่คือซอร์สโค้ดสำหรับคอนโทรลเลอร์พร้อมกับบ็อตตัวอย่างที่ไม่แข่งขันสำหรับการอ้างอิง: import itertools import random def get_strides(board, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.