2019-05-23に投稿

パパ活Python 1桁の足し算全パターンを生成

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

👨🏻 小学校前やし1桁の足し算の練習させたろ。

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

今回作るコードの案件

  • 1から9までの全パターンの組み合わせを配列で生成
  • ランダムに配列から10個を取り出す

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

👧 ええんちゃう?

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

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

👨🏻 問題はここやな。

num=[1,2,3,4,5,6,7,8,9]

👨🏻 これをfor文で総当たりにしたらええかな?

👧 もっと簡単にできないの、パパ

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

👧 オ、ン、ナのカン

👨🏻 カンがええ女はお母さんだけで充分や!

itertoolsを使う

Pythonには、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])+"=")

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

👨🏻 あとはこれを配列に格納してランダムに取り出せるようにしよか

👧複数の要素を重複無しで取り出すならrandom.sample()よ

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

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

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

👧パパ。。明日から引き算するらしいの。。

👨🏻えーーーーーーーー

動画付きはこちら

CodeRecepe

Originally published at www.coderecipe.org

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

aocory

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

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

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

ボードとは?

関連記事

コメント