2019-05-24に投稿

パパ活Python 1桁の引き算全パターンを生成

👧 ぱっぱ、私引き算の練習したい。

👨🏻 前回、足し算は全部できたし引き算は余裕やろ。

👨🏻 けど、やっぱり問題作るの面倒くさいな。せや!Pythonにさせたろ!

今回作るコードの案件

  • 1から9までの全パターンの組み合わせを配列で生成
  • 小学生を対象としているので負の値をとるものは除去し再度配列に格納
  • ランダムに配列から10個を取り出す

👨🏻 こんな要件でどうやろ?

👧 ええんちゃう?

👨🏻 娘なんでわかるねん。

1から9までの全パターンの組み合わせを配列で生成

👨🏻 問題はここやな。前回使ったitertoolsでいけそうや。

import itertools
num=[1,2,3,4,5,6,7,8,9]
list(itertools.permutations(num, 2))

👨🏻 なんか犬がしゃべった気がするけど気のせいやな。

👧 permutationsは、順列という意味よ

👨🏻 娘ワイより英語できるやん。

forでリストを取り出す

👨🏻 とりあえず、for文でリストを取り出して

👧 []で要素にアクセス

👨🏻 娘なんでそんなん知ってるねん。

import itertools
num=[1,2,3,4,5,6,7,8,9]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
  print(str(nums[0])+"-"+str(nums[1])+"=")

👨🏻 けど、不十分やなこれやと。0以下のマイナスも含まれるな。

random.sample()でランダムに複数要素を取り出す。

👨🏻 あとはこれを配列に格納してランダムに取り出せるようにしよか。random.sample()でええかな?

👧 ぱぱその前にifで0以上になるものを抽出しないとダメじゃない

👨🏻 なんでワイより詳しいねん。

import itertools
import random
num=[1,2,3,4,5,6,7,8,9]
subtractionlist=[]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
  if nums[0]-nums[1] > 0:
    subtractionlist.append(str(nums[0])+"-"+str(nums[1]))
print(random.sample(subtractionlist,10))

👨🏻おっしゃ、できたで!これで無限に小テストできるで!

👧パパ。。でもね。引き算の授業。。昨日で終わっちゃった。。

👨🏻えーーーーーーーー

動画で確認

CodeRecipe

Originally published at www.coderecipe.org

view_list ワイと学ぶPython
第3回 seleniumを使ってtwitterにログインしてTweetする
第4回 パパ活Python 1桁の足し算全パターンを生成
第5回 パパ活Python 1桁の引き算全パターンを生成
第6回 パパ活 Pythonで単語テストを作る
第7回 PythonでFizzBuzzを作る

aocory

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント