Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
4: 循環小数の循環を止める
文字列
文字列
3
例 ) ss = "Coffee"
引用符
[0] [1] [2] [3] [4] [5]
ss C o f f e e
ss[2]
n = len(ss) ← ss に格納されている文字列の長さ
ss = input("文字列を入力しよう: ")for i in range(len(ss)):
print( ss[i] )
printString.py $ python printString.py文字列を入力しよう: Ice%creamIce%...文字列を入力する方法
文字コードASCII
文字コード‣ 文字もコンピュータ内では数字 (2 進数)‣ 文字を2進数で表すことを文字コードという.
ASCII‣ 英数字の文字コード
その他‣ 日本語(ISO-2022-JP, SJIS)
世界(EUC, Unicode)
4
文字コードASCII
5
char = 'b'code = ord(char)
code = 98char = chr(code)
ord(char)
chr(code)
文字 ASCII
char = 'b' code = 98
文字コードASCII
6
[0] [1] [2] [3] [4]
ss C a b c z
[0] [1] [2] [3] [4]
aa 67 97 98 99 122
ss="Cabcz"
aa=[67,97,98,99,122]
bb=b'Cabcz'[0] [1] [2] [3] [4]
bb 'C' 'a' 'b' 'c' 'z'
bb=bytes(aa)aa=list(bb)
bb=ss.encode("ascii")ss=bb.decode("ascii")
文字列 (string)
バイト列 (bytearray)
配列 (list, array)
宿題2
宿題2 問1:最大値
8
array = list(map(int, input("a = ").split()))
# 以下が計算部分
max_v = -100000 # マイナス無限大と言える数max_j = -1
for j in range(len(array)):
print("max_v =", max_v)
print("max_j =", max_j)
max.py
宿題(1)
$ python max.pya = -3 8 19 -4max_v = 19max_j = 2$
Terminal
最大値 = 𝑚𝑎𝑥(𝑎0, 𝑎1, … , 𝑎𝑛−1)
宿題2 問2:英小文字のみ
9
ss = input("文字列を入力しよう: ")
aa = ss.encode("ascii")
for i, code in enumerate(aa):
abcPrint.py
宿題(2)
$ python abcPrint.py文字列を入力しようIce%%creamcecream$
英小文字のみ画面に出力するプログラムを作ろう.
ヒント:'a'のASCIIは97あるいはord('a'); 'z'は122
循環小数の循環を止める
プロジェクト2
テーマ 循環小数の循環を止める
配列は同じようなデータを統一的に処理するには便利な道具だが,それ以外にも賢い使い方がいくつかある.その例を考えてみよう.
これだと無限に小数を出し続ける場合がある !!
3. 次週のレポート予告 レポート#2
from time import sleepd = int(input("分母 d を下さい(2以上の整数): "))print("1 /", d, " を求めます")done = False; x = 1; count = 0
while not done:x = x * 10q = x // dcount += 1amari = x % d
print(count, " : ", q, " (", amari, ")")sleep(0.25)if amari == 0:
done = Trueelse:
x = amari
junkan.py
Terminalの強制終了は
キーボードでControl-C
テーマ 循環小数の循環を止める
配列は同じようなデータを統一的に処理するには便利な道具だが,それ以外にも賢い使い方がいくつかある.その例を考えてみよう.
3. 次週のレポート予告 レポート#2
やるべきこと
配列をうまく使って循環小数になっても止まるようにプログラムを改良する.
from time import sleepd = int(input("分母 d を下さい(2以上の整数): "))print("1 /", d, " を求めます")done = False; x = 1; count = 0
while not done:x = x * 10q = x // dcount += 1amari = x % d
print(count, " : ", q, " (", amari, ")")sleep(0.25)if amari == 0:
done = Trueelse:
x = amari
junkan.py
やるべきこと
配列をうまく使って循環小数になっても止まるようにプログラムを改良する.提出物はソースコードのみでよい. 〆切:次回の授業開始時
提出物と採点基準(満点 15)
今回はプログラムに名前と学籍番号を書いて提出する. (5)
説明はプログマルのコメント(#)や余白のスキャンとして書く
・ どうやって循環を見つけるのかの説明 (10)
(読み手はそのやり方を知らないと思って書くこと)
・ 工夫があれば(加点)その工夫も説明すること. (~ 5 ← 加点)注)20行や余白1枚に書き込める程度の説明で十分ですが,それより少々長くなっても問題ありません.
テーマ 循環小数の循環を止めるレポート#2
配列は同じようなデータを統一的に処理するには便利な道具だが,それ以外にも賢い使い方がいくつかある.その例を考えてみよう.
ただし,
ヒント
14
0
1
2
3
d=4
0.
2
5
0
1
2
3
4
5
d=6
0.
1
6
0
1
2
3
45
6
d=7
0.
1
42
8
57
0.142857142857...0.16666...0.25
桁
余り