作者Schottky (顺风相送)
看板Python
标题Re: [心得] 九九乘法表 不使用回圈
时间Sat Feb 27 13:15:02 2021
朋友给了我一个很 Python 的解法,要用 Python 3.8 以上才能执行
from itertools import product, zip_longest
from math import prod
def show99(f):
if f[0][1]==9: return f"{f[0][1]:1d} x {f[0][0]:1d} = {f[1]:2d}\n"
else: return f"{f[0][1]:1d} x {f[0][0]:1d} = {f[1]:2d}, "
e = list(product(range(1,10), repeat=2))
l = list(map(prod, e))
f = zip_longest(e,l)
print(''.join(map(show99,f)))
--
桃乐丝: 可是, 如果你没有头脑, 为什麽会说话?
稻草人: ㄝ, 我也不知... 但是有些人没有头脑也能说超~多话呢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.165.64.143 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1614402905.A.58B.html
1F:推 ddavid: 用itertools.product算不算作弊用了回圈? 03/01 08:53
2F:推 ddavid: 另外有个思路是把首篇方法一那整个九九乘法表的字串编码压 03/01 08:56
3F:→ ddavid: 缩(比如用zip),於是要印时call解压缩程式解开来再把解 03/01 08:58
4F:→ ddavid: 开的内容印出来就好,跟request法异曲同工,但不用网路XD 03/01 08:58
有道是作弊没被抓到就不算作弊 (出自 JOJO 第三部)
虽说这题目原本是考试题目,但我想出题的人根本没想到有这麽多解法
我也不知道真的在考卷上这样写会出什麽事,反正我们自己玩得开心就好
iterator 系的解法有在别板看过 (用 C++ 写的)
不管算不算作弊,毕竟是除了 for/while loop 以外的写法,也颇有参考价值
不过我书还没念到那边 (小声)
zip 法第一次听说,大开眼界 XD
原来还能这样操作,感觉开启了一个全新的领域
(对,这原本是 C_and_CPP 板的搞笑系列文)
※ 编辑: Schottky (111.250.54.51 台湾), 03/01/2021 17:07:58
5F:推 ddavid: C/C++版的搞笑串我只参加过一个2009年的串XD 03/02 16:45
6F:→ ddavid: [问题] c语言程式求助 这一串 03/02 16:45
7F:→ ddavid: 虽然是作业文,可是热心版众踊跃回答问题,超级温馨(?) 03/02 16:46
8F:→ ddavid: 其实啊,如果用itertools算过关,那我在本版 #1V0jhKqA 03/02 16:48
9F:→ ddavid: 用的那招应该也能过关XD 03/02 16:48
10F:→ ddavid: 啊,好像不行,里面有for in太明显了XD 03/02 16:57