嵩天先生python基礎課程ノート-3
40742 ワード
文書ディレクトリ第3週基本データ型 3.1データ型および操作 3.2例3:日々向上する力 3.3文字列タイプおよびその操作 3.4モジュール2:timeライブラリ使用 3.5例4:テキスト進捗バー 3.1データ型および操作 3.2例3:日々向上する力 3.3文字列タイプおよびその操作 3.4モジュール2:timeライブラリ使用 3.5例4:テキスト進捗バー 平方根フォーマット 文字列セグメントの組合せ 第3週基本データ型
3.1データ型と操作
3.2例3:日々向上する力
3.3文字列タイプとその操作
3.4モジュール2:timeライブラリ使用
3.5例4:テキスト進捗バー
3.1データ型と操作
整数タイプ:数学の整数の概念と一致し、正負可能で、値の範囲の制限がありません.pow(x y)関数:x y x^y xyを計算し、どれだけ大きいかを計算したい 4進数表示:十進法:1010,99,-217等 バイナリ、0 bまたは0 Bで始まる:0 b 010,-0 B 10 8進法、00または0 Oで始まる:00123,-00456 16進数、0 xまたは0 Xで始まる:0 x 9 a 2,-0 X 89
浮動小数点数:小数点の数を持ち、数学の概念とずっと、範囲−1 0 308−10^{308}−10308~1 0 308 10^{308}10308、精度1 0−16 10^{−16}10−16浮動小数点数の端数に不確定端数が存在し、bug ではないround(x,d):xを四捨五入し、dは小数切り取りビット数浮動小数点数間演算及び比較用round 0関数補助 浮動小数点数は、アルファベットeまたはEをべき乗とする記号を科学的カウント法で表すことができ、10を基数とし、a*10 bを以下のように表す.例えば、4.3 e-3値が000439.6 E 5値が96000.0
複数タイプ:数学の複数と一致
数値演算オペレータ
+,-,*,/,//:加算,減算,乗算,除算,整数除算+x:x自体 -y:yの負の値 x%y:y対x取余 x**y:べき乗演算 エンハンスメント演算子:x op=y、すなわちx=x op y
数値演算関数:関数として数値演算を提供する機能
3.2例3:日々向上する力
質問1:千分の一の暦の力毎日0.001進歩して、1年累計でいくら進歩しますか? 毎日0.001退歩して、1年の累計退歩はいくらですか?
質問2:1パーセントまたは5パーセントに変更コードに変数を追加し、変数を変更すればよい
質問3:5営業日で1%、2営業日で1%後退
質問4:平日の努力の度合いがどれくらいの場合、毎日の努力の1%と同じ(2日休んで1%下がっても変わらない)
3.3文字列タイプとその操作
0文字または複数の文字からなる順序付き文字列文字列は、1対の単一引用符または1対の二重引用符で文字列が文字の秩序化されたシーケンスであることを示し、その中の文字をインデックスすることができる 文字列は2種類の計4種類の表現方法で1対の単引用符または二重引用符で表され、単一行文字列のみが1対の三単引用符または三重引用符で表され、複数行文字列 を表すことができる.文字列に二重引用符または一重引用符を含める場合は?どの引用符が必要かは、その引用符を文字列のタグとしない 順方向の増加(0から)、逆方向の減少(-1から) が同時に存在するインデックス:文字列内の単一文字を返す:[M]スライス:文字列内の文字列のサブ列を返す:[M:N]、M欠落は先頭まで、N欠落は全培尾M:N:Kを表し、ステップKに基づいて文字列スライス エスケープ:文字の本意を表すエスケープはいくつかの組み合わせを形成して、いくつかの印刷できない意味を表すことができます:"b"は後退して、"改行(カーソルは下りの頭に移動します)、"r"は車に戻ります(カーソルは本行の頭に移動します) 0文字または複数の文字からなる順序付き文字列x+y:2つの文字列n*xまたはx*nを接続する:n次文字列x x in sをコピーする:xがsのサブ列であればTrueを返し、そうでなければFalse を返す
文字列処理関数
メソッド「プログラミングでは固有名詞「メソッド」とは、 が存在する.
文字列タイプの書式設定スロット:文字列用のプレースホルダ
3.4モジュール2:timeライブラリ使用
timeライブラリ:Pythonの処理時間の標準ライブラリコンピュータ時間の表現はシステム時間を取得し、出力機能をフォーマットすることを提供し、システムレベルの正確な計時機能を提供し、プログラム性能分析に用いる3種類の関数を含む 時間取得: 時間フォーマット: プログラムタイミング:
3.5例4:テキスト進捗バープログレスバーはヒューマン・マシン・インタラクションの優れた表現形式
平方根の書式設定
ユーザ入力の1つの整数aを取得し、aの平方根を計算し、小数点後3位を保持し、出力を印刷する.8234;8234;8234;8238;8234;8234;8234;8235;\8234;;;;;\8234;;;;;;;;;;;;;;;8235;;;;;;;;8235;;;;;;;;;;;\8235;;;;;;ジルコニア
出力結果は幅30文字、右揃え出力、余分な文字はプラス記号(+)充填.8234;8234;8234;8234;8234;;8234;;8234;;8234;;8234;;8234;;;8234;;;8234;;;8234;;;8234;;;;;;;;;;8234;;;;;8234;;;;;;;;;;;;;;;;;;;;;;;;;\\ジルコニア
結果が30文字を超える場合は、結果の幅に準じます.
文字列セグメントの組合せ
入力された文字列sを取得し、sを文字マイナス(-)で分割し、最初と最後の2つのセグメントをプラス記号(+)で組み合わせて出力します.
3.1データ型と操作
3.2例3:日々向上する力
3.3文字列タイプとその操作
3.4モジュール2:timeライブラリ使用
3.5例4:テキスト進捗バー
3.1データ型と操作
整数タイプ:数学の整数の概念と一致し、正負可能で、値の範囲の制限がありません.
pow(2,10) #pow
1024
浮動小数点数:小数点の数を持ち、数学の概念とずっと、範囲−1 0 308−10^{308}−10308~1 0 308 10^{308}10308、精度1 0−16 10^{−16}10−16
0.1+0.2 #
0.30000000000000004
0.1+0.2==0.3
False
round(0.1+0.2,3)==0.3
True
7.8e-1
0.78
複数タイプ:数学の複数と一致
z=1.23e-4+5.6e+89j
#z.imag
z.real
0.000123
数値演算オペレータ
+,-,*,/,//:加算,減算,乗算,除算,整数除算
4**0.5
2.0
x=2
x*=3
print(x)
6
数値演算関数:関数として数値演算を提供する機能
abs(-10.00001) # abs(x)
10.00001
divmod(10,3) # ,(x//y,x%y)
(3, 1)
pow(4,pow(2,1),10) # ,(x*y)%z,[] z
6
round(10.12345,3) # ,d , 0
10.123
max(1,3,5,6,7,8,9,10,0b11111111111111111111111111111110101010) #
274877906858
min(1,3,4,5,6,7,87,8,8,-0x123a27365) #
-4892816229
int(123.3456) # ,
123
float(10) # ,
10.0
complex(-10e2) # ,
(-1080+0j)
3.2例3:日々向上する力
質問1:千分の一の暦の力
#DayDayUpQ1
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print(' :{:.2f}, :{:.2f}'.format(dayup,daydown))
:1.44, :0.69
質問2:1パーセントまたは5パーセントに変更コードに変数を追加し、変数を変更すればよい
#DayDayUpQ2
dayfactor = 0.01
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print(' :{:.2f}, :{:.2f}'.format(dayup,daydown))
:37.78, :0.03
質問3:5営業日で1%、2営業日で1%後退
#DayDayUpQ3
dayup = 1.0
dayfactor = 0.01
for i in range(365):
if i % 7 in [6,0]:
dayup *= (1 - dayfactor)
else:
dayup *= (1 + dayfactor)
print(' :{:.2f}'.format(dayup))
:4.63
質問4:平日の努力の度合いがどれくらいの場合、毎日の努力の1%と同じ(2日休んで1%下がっても変わらない)
#DayDayUpQ4
def dayUp(df):
dayup = 1
for i in range(365):
if i % 7 in [6,0]:
dayup = dayup*(1 - 0.01)
else:
dayup = dayup*(1 + df)
return dayup
dayfactor = 0.01
while dayUp(dayfactor) < round(pow(1.01,365),2):
dayfactor += 0.001
print(' :{:.3f}'.format(dayfactor))
:0.019
3.3文字列タイプとその操作
0文字または複数の文字からなる順序付き文字列
#WeekNamePrintV1
weekStr = ' '
weekId = eval(input(' (1-7):'))
pos = (weekId - 1)*3
print(weekStr[pos:pos+3])
#WeekNamePrintV1
weekStr = ' '
weekId = eval(input(' (1-7):'))
print(' '+weekStr[weekId-1])
文字列処理関数
len('1yi ') #
4
str(1234) #
'1234'
hex(234) # 16
'0xea'
oct(234) # 8
'0o352'
chr(1234) #Unicode
'Ӓ'
ord('A') # , Unicode
65
#
for i in range (12):
print(chr(9800+i),end = '')
♈♉♊♋♌♍♎♏♐♑♒♓
メソッド「プログラミングでは固有名詞
.()
スタイルの関数()
メソッド自体も関数であるが、
に関連し、.()
スタイル使用文字列および変数も
であり、いくつかのメソッド'ABDHSUwwbdja'.lower() #
'abdhsuwwbdja'
'ASJIJIHDqhsudhausbc'.upper() #
'ASJIJIHDQHSUDHAUSBC'
'A.split(') #
['A', 'BAB', 'G']
'an apple a day'.count('a') #
4
'python'.replace('n','n123.io') #
'python123.io'
'python'.center(20,'~') # 20 ~
'~~~~~~~python~~~~~~~'
'= python ='.strip(' =np') #
'ytho'
'-'.join(' ?') #
' - - -?'
文字列タイプの書式設定
'{}: {} CPU :{}%'.format('2018-10-10','C',pow(2,5)) # +format
'2018-10-10: C CPU :32%'
'{:=^50}'.format('python') #= , , 50
'======================python======================'
'{:,.2f}'.format(12345.678947) # , 2,
'12,345.68'
3.4モジュール2:timeライブラリ使用
timeライブラリ:Pythonの処理時間の標準ライブラリコンピュータ時間の表現はシステム時間を取得し、出力機能をフォーマットすることを提供し、システムレベルの正確な計時機能を提供し、プログラム性能分析に用いる
time()
,ctime()
,gmtime()
strftime()
,strptime()
sleep()
,perf_time()
import time as t
#
t.time() #1970/1/1 0.0.0 ,
1583509138.1986494
t.ctime() # ,
'Fri Mar 6 23:38:53 2020'
t.gmtime() # ,
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=6, tm_hour=15, tm_min=39, tm_sec=3, tm_wday=4, tm_yday=66, tm_isdst=0)
# : , ,
Time = t.gmtime() #
t.strftime('%Y-%m-%B-%b-%d %H(%I):%M:%S %A-%a %p',Time) # ,%B ,
'2020-03-March-Mar-06 15(03):41:40 Friday-Fri PM'
#
timeStr = '2020-03-06 23:46:34'
t.strptime(timeStr,'%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=6, tm_hour=23, tm_min=46, tm_sec=34, tm_wday=4, tm_yday=66, tm_isdst=-1)
# : ,
start = t.perf_counter()# ,
end = t.perf_counter()
end - start
2.6000000161729986e-05
def wait():
t.sleep(3.3)
wait()# 3.3s
3.5例4:テキスト進捗バー
#TextProBarV1
import time as t #
scale = 10
print('------ ------') #
for i in range(scale+1): # ,
a = "*"*i
b = '.'*(scale - i) #
c = (i/scale)*100
print('{:^3.0f}%[{}->{}]'.format(c,a,b))
t.sleep(0.3)
print('------- ------') #
------ ------
0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------- ------
#TextProBarV1
#
# print ,
import time as t
for i in range(101):
print('\r{:3}%'.format(i),end = '')
t.sleep(0.1)
100%
#TextProBarV3
import time as t #
import math as m
scale = 50
print(' '.center(scale//2,'-')) #
start = t.perf_counter()
for i in range(scale+1): # ,
a = "*"*i
b = '.'*(scale - i) #
#c = (i/scale)*100 #
c = round((m.sin(i/scale*0.5*(m.pi))),3)*100
dur = t.perf_counter()-start
print('\r{:^3.0f}%[{}->{}] [{:.2f}s]'.format(c,a,b,dur),end = '')
t.sleep(0.1)
print('
'+' '.center(scale//2,'-')) #
----------- ----------
100%[**************************************************->] [5.03s]
----------- ----------
val = pow(2,1000)
len(str(val))
302
s='PYTHON'
print("{0:3}".format(s))
PYTHON
平方根の書式設定
ユーザ入力の1つの整数aを取得し、aの平方根を計算し、小数点後3位を保持し、出力を印刷する.8234;8234;8234;8238;8234;8234;8234;8235;\8234;;;;;\8234;;;;;;;;;;;;;;;8235;;;;;;;;8235;;;;;;;;;;;\8235;;;;;;ジルコニア
出力結果は幅30文字、右揃え出力、余分な文字はプラス記号(+)充填.8234;8234;8234;8234;8234;;8234;;8234;;8234;;8234;;8234;;;8234;;;8234;;;8234;;;8234;;;;;;;;;;8234;;;;;8234;;;;;;;;;;;;;;;;;;;;;;;;;\\ジルコニア
結果が30文字を超える場合は、結果の幅に準じます.
zhengshu = input()
print('{:+>30.3f}'.format(pow(eval(zhengshu),0.5)))
++++++++++++++++++0.000+3.162j
文字列セグメントの組合せ
入力された文字列sを取得し、sを文字マイナス(-)で分割し、最初と最後の2つのセグメントをプラス記号(+)で組み合わせて出力します.
zifu = input()
ZiFu = zifu.split('-')
print('{}+{}'.format(ZiFu[0],ZiFu[-1]))
Alice+Flurry