山内セミナーⅠ(2022/04/27)
関連サイトと資料
Minicondaにおける仮想環境の作成
- 下の図の赤丸をクリックして、コマンドプロンプトを開いてください。
- 下の図のように、コマンド「conda create -n seminar1 python=3.8 pip=20.2.1」と入力して、エンターキーを押してください。
後で「Proceed ([y]/n)?」と聞いてくるので、「y」と入力してエンターキーを押してください。
- 仮想環境の作成が完了したら、「conda activate seminar1」と入力して、エンターキーを押してください。
プロンプトの左側のカッコの中の表示が「base」から「seminar1」に変化し、仮想環境「seminar1」に入ったことを示しています。
- 仮想環境「seminar1」で、「pip install openpyxl」と入力して、エンターキーを押してください。
大学で作業をしている時には、「pip install openpyxl --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。
作成した仮想環境の適用
- VSCodeでpythonのソースファイルが存在するフォルダを開き、シフトキーとコントロールキーと「p」を同時に押してコマンドパレットを表示する。
- 上部のテキストボックスに「select」と入力し、表示されたコマンドの中から「Python: Select Interpreter」をクリックする。
-
表示されるpythonの中から、「('seminar1': conda)」をクリックする。
「('seminar1': conda)」が表示されていない場合は、右上の円状の矢印をクリックする。
サンプルプログラム(1)
変数に型はありません。また、宣言する必要もありません。他のプログラム言語と同様に、四則演算その他の計算ができます。
計算結果は、print文を使えば表示できます。
test1.py
x = 100
y = 3.14
z = x + y
s1 = 'これは文字列です。'
print(z)
print(s1)
サンプルプログラム(2)
ソースプログラムのファイル名に日本語を使うこともできます。
ただし、拡張子は半角文字で「.py」とする必要があります。
以下のプログラムには、4つほど理解していただきたいことがあります。
- まず、ユーザー定義関数です。平方根やsinなどのように、システムにあらかじめ用意されている関数はシステム関数などと呼ばれ、
ユーザーのプログラムからいつでも呼び出すことが可能です。それに対して、ユーザーが作成した関数をユーザー定義関数と呼んで、
区別します。以下のプログラム内で、「def odd_or_even():」から「odd_or_even()」の1行前までがユーザー定義関数です。
関数内に含まれる命令文は、「def add_or_even():」よりもインデントを1つ多くつける必要があります。
C言語だと「{」と「}」で囲むのですが、Pythonではそれをインデントで表します。
関数定義の1行目は「def 関数名(引数1,引数2,...):」と記述します。従って今回の場合、関数名はodd_or_even、引数は無しということになります。
関数は定義しただけでは実行されません。呼び出す必要があります。最終行の「odd_or_even()」が関数を呼び出している箇所です。
- 次に、固定回数の繰り返しです。C言語のfor文に相当します。以下のプログラムでは、関数内の「for i in range(11):」以降が相当します。
関数と同様に、繰り返し対象となる命令文は「for i in range(11):」よりもインデントを1つ多くつける必要があります。
ちなみに今回の場合、制御変数iは0からrange関数に指定した引数「10」よりも1少ない数まで1ずつ増えていきます。すなわち、10回の繰り返しになります。
C言語で表記すると「for (i = 0; i < 10; i++)」となります。
- 3つ目に、if文です。「if i % 2 != 0:」は、「iを2で割った余りが0と等しくない」という条件が満たされた時に、
次の行から始まるインデントを1つ多くつけたブロック命令文(今回はprint文が1つ)を実行するということになります。
「else:」の部分については説明するまでもありませんね。
- 最後に、format文です。これは、変数の値と文字列を結合して、文字列にするものです。
最も簡単な使い方は、format関数の引数として並べた変数に対して0から番号が振られるので、
文字列中に変数の値を埋め込みたい箇所に{番号}と書くことです。
詳細は、
「関連サイトと資料」にあるリンク「【Python入門】format関数で文字列の書き方」
をクリックしてみてください。
test2.py
def odd_or_even():
for i in range(10):
if i % 2 != 0:
print('{0}は奇数です。'.format(i))
else:
print('{0}は偶数です。'.format(i))
odd_or_even()
引数があるユーザー定義関数を使ったサンプルプログラムを示します。
mathモジュールで定義されている円周率を使うので、
プログラム冒頭で「import math」としています。
test3.py
import math
def calcArea(r):
area = r * r * math.pi
return area
r = 10
print('半径{0}の円の面積は{1}です。'.format(r, calcArea(r)))
サンプルプログラム(3)
test4.py
import openpyxl
wb = openpyxl.Workbook()
wb.save('test1.xlsx')
test5.py
import openpyxl
x = 100
y = 3.14
z = x + y
s1 = 'これは文字列です。'
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '20210428'
ws.cell(row=1, column=2).value = z
ws.cell(row=2, column=1).value = s1
wb.save('test2.xlsx')
test6.py
import openpyxl
def odd_or_even(sheet):
for i in range(10):
sheet.cell(row=i+1, column=1).value = i
if i % 2 != 0:
sheet.cell(row=i+1, column=2).value = '奇数'
else:
sheet.cell(row=i+1, column=2).value = '偶数'
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '偶数・奇数の判別'
odd_or_even(ws)
wb.save('test3.xlsx')
test7.py
import openpyxl
import math
def calcArea(r):
area = r * r * math.pi
return area
def insert(sheet, y, r):
sheet.cell(row=y, column=1).value = r
sheet.cell(row=y, column=2).value = calcArea(r)
def createTable(sheet):
sheet.cell(row=1, column=1).value = '半径'
sheet.cell(row=1, column=2).value = '円の面積'
y = 2
for r in range(10, 100, 10):
insert(sheet, y, r)
y = y + 1
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '円の面積'
createTable(ws)
wb.save('test4.xlsx')