拍7這個遊戲是我大學和同學聚餐喝酒時常玩的遊戲。
遊戲規則: 從1開始,每人依次 +1 往上數,遇到含有 7 或者 7 的倍數的數,就要拍一下桌子。但是我們就那麼些人喝了4年,這遊戲玩到100以上的次數還是屈指可數。爲了下次少喝酒 ,寫一個程序加深印象。
我的思路是這樣子的:
- 給定一個範圍,例如100以內,for i in range(1,100);
- 滿足 i % 7 == 0 的輸出到 a = [];
- 餘下的數轉成字符串類型,利用索引判斷位數上含不含 7,滿足條件的輸出到 b = [];
- 在想。
問題出來了,給定範圍的數都是int型,這就不能做下標。
不管是元組還是列表,都不能做 - 操作,第二步完成之後餘下的數怎麼表示呢?
有問題就有動力,菜雞日記。
續:
之前的思路現在想起來真的是有點可笑。先上代碼:
list = []
def take_7(x):
for i in range(1,x):
if i % 7 == 0:
list.append(i)
if "7" in str(i):
list.append(i)
print(set(list))
輸出爲
>>>take_7(100)
{7, 14, 17, 21, 27, 28, 35, 37, 42, 47, 49, 56, 57, 63, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 84, 87, 91, 97, 98}
解題只需要將int型轉爲str,如此簡單