base64.b64encodeの構文の中身

投稿者: Anonymous

やりたいことはベーシック認証を突破してあるHPからデータをダウンロードする事です。
この後 URL,保存するファイルのパスを指定を指定していきます。
教わったプログラムは下記のプログラムを含みます。

format関数だと、'任意の文字列{}任意の文字列'.format(変数)と記載をすると思っています。
{}の間の:がどういう意味を持つのか、format関数の,がどういう意味を持つのか、なぜここに入れればできるのかを教えていただけませんでしょうか。

import urllib.request 
import base64 
 
user = 'abcde'
password = '12345'
basic_user_and_pasword = base64.b64encode('{}:{}'.format(user, password).encode('utf-8'))

解決

format関数だと、'任意の文字列{}任意の文字列'.format(変数)と記載をすると思っています。

その記述でどこまでご理解されているのか掴みかねるのですが、

'任意の文字列1{}任意の文字列2{}任意の文字列3'.format(式1,式2)

と言うのも正しいformatメソッドの使い方であり、式1の値が1つ目の{}に、式2の値が2つ目の{}に埋め込まれる形になります。

ここで任意の文字列1任意の文字列3を空、任意の文字列2:に置き換えてやると、ご質問にある、

'{}:{}'.format(user, password)

と言う式が出来上がります。

つまり、1つ目の{}userの値で、2つ目の{}passwordで置き換えた文字列を作れ、と言う意味ですね。

その部分を

(user + ':' + password)

と書いても全く同じ結果になります。

この場合の:には特別の意味はなく、単に結果にそのまま埋め込めたい「任意の文字列」でしかありません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *