VBA別館・Python別館

64327

Python 英単語お助けソフト - Tak

2018/12/29 (Sat) 09:56:27

英検1-2級程度の出題ソフトを作りました。

① 英単語試験2.txtファイルを作る。

・まず下記のような単語ファイルを作ります。
・英単語と和文の間は、”全角スペース”で区切ってください。 この全角スペースで英文と和文を区別してます。
・取り合えず例として、下のように18個の英単語を作りました。

-------------
gaunt やせた
ransack くまなく捜す
clarion 明るく響き渡る
chasm 深い割目
diffidence 自信のなさ,内気,はにかみ,遠慮
desolation 荒廃させること(荒涼)
actuarial 保険計理(士)の
anathema キリスト教破門
annihilate 全滅,絶滅させる
antic 滑稽な態度,ピエロ,ふざけた
append (札などを)つける(attach)
arbiter 最高の権威
arbitrary 任意の,勝手な
beseech 嘆願する
betrothal 婚約
blare (らっぱ・ラジオなどが)鳴り響く,大声で叫ぶ
appal ぞっとした
capsize 船・ボートなどが転覆する・させる
carmine 洋紅色の
chasm (岩・地面などの深い割目

------------------

codeは次回

Re: Python 英単語お助けソフト - Tak

2018/12/30 (Sun) 08:41:23

② プログラムは以下

プログラムの概要は、次のようなものです。
・テキストファイルを読み込む
・18個の乱数に応じて、英単語とその日本語訳を変数の格納する
・キボードのenterを押すと、一行ずつ表示される
・exit入力で中止する

-------------------------
# 英単語試験2.py
# txt読み出して、乱数で英語と日本語を表示する
# 半角スペ-スで英語と日本語を分けているのでそれを厳守のこと

import random

def read_words():
  file = open("英単語試験2.txt")
  lines = file.readlines()
  file.close()

  e_words = []
  j_words = []

  for line in lines:
    line = line.rstrip("\n")
    name = line.rsplit(" ")
    if len(name) == 2:
      e_words.append(name[0])
      j_words.append(name[1])
    return [e_words, j_words]

def show_data(num, e_words, j_words):
  e_word = e_words[num]
  j_word = j_words[num]
  print(e_word + " " + j_word)

words = read_words()
e_words = words[0]
j_words = words[1]

x = input("Enter exit to quit")
while True:
  x = input()
  if x == 'exit':
    break

  num = random.randrange(0, 18)
  show_data(num, e_words, j_words)

--------------------------------

runすると、

Enter exit to quit

beseech 嘆願する

beseech 嘆願する

chasm 深い割目

desolation 荒廃させること(荒涼)

appal ぞっとした

clarion 明るく響き渡る

exitと入力するまで、延々とこれが続きます。


・インデントは変数の使える範囲(スコープといいます)を規定していますので、プログラムのルール第一号という感じです。
・一回のインデントは半数スペース4個分ですが、全角2回でcodingするとエラーとなります。

Re: Python 英単語お助けソフト(完) - Tak

2019/01/03 (Thu) 17:32:32

③ 英単語自動出題ソフト

・今回は出題用英単語100個のtxtファイルを準備しました。

・Enterでスタートし乱数で英単語が表示されます。

・1秒後にその訳が表示されます。 1秒では短い場合はsleep(5)などで5秒にして下さい。

----------------------


# 英単語試験100.py

import random
from time import sleep

def read_words():
  file = open("英単語試験100.txt")
  lines = file.readlines()
  file.close()

  e_words = []
  j_words = []

  for line in lines:
    line = line.rstrip("\n")
    name = line.rsplit(" ")
    if len(name) == 2:
      e_words.append(name[0])
      j_words.append(name[1])
    return [e_words, j_words]

def show_data(num, e_words, j_words):
  e_word = e_words[num]
  j_word = j_words[num]
  print(e_word, end=('')) #英単語出題、改行なし
  sleep(1) #1秒停止

  print(" : " + j_word) #日本語訳表示

words = read_words()
e_words = words[0]
j_words = words[1]

x = input("Enter exit to quit")
while True:
  x = input()
  if x == 'exit':
    break

  num = random.randrange(0, 100)
  show_data(num, e_words, j_words)

--------------------------------

出題の英単語を使った例文をそのうち載せます。

単語のレベルは1万語前後です。

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.