python入門ノート(Day 1)--変数、文字(列)、tuple、list、set、dict、判断、ループ

10901 ワード

要点:
入出力データ、変数の違いと文字フォーマット、文字列、tuple、list、set、dict、判断とループを学び、明日関数を開きます!
加減乗除
除算計算結果は浮動小数点数であり、2つの整数が適切に除算されても、結果は浮動小数点数である.
>>> 9 / 3
3.0

もう1つの除算法は//で、床の除算と呼ばれ、2つの整数の除算法は依然として整数です.
>>> 10 // 3
3

あなたは間違いなく、整数の床を除いて//永遠に整数で、たとえ除去できなくても.正確な除算を行うには、/を使用します.
//除算は結果の整数部分のみを取るので、Pythonはまた1つの余剰演算を提供して、2つの整数の除算の余剰を得ることができます:
>>> 10 % 3
1

整数を//除算しても残数を取っても、結果は永遠に整数なので、整数演算の結果は永遠に正確です.
文字列
Pythonの文字列タイプはstrであるため、メモリにはUnicodeで表され、1文字は数バイトに対応する.ネットワーク上で転送したり、ディスクに保存したりするには、strをバイト単位のbytesに変更する必要があります.
エンコーディング
個々の文字の符号化に対して、Pythonはord()関数を提供して文字の整数表現を取得し、chr()関数は符号化を対応する文字に変換する.
>>> ord('A')
65
>>> ord(' ')
20013
>>> chr(66)
'B'
>>> chr(25991)
' '

Unicodeとバイトストリーム変換
除算計算結果は浮動小数点数であり、2つの整数が適切に除算されても、結果は浮動小数点数である.
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'  '

strに何文字が含まれているかを計算するにはlen()関数を使用します.特別なビジネス要件がない場合は、UTF-8コードのみを使用することを覚えておいてください.
最初のコメント
Pythonソースコードもテキストファイルなので、ソースコードに中国語が含まれている場合、ソースコードを保存する場合は、必ずUTF-8コードとして保存するように指定する必要があります.Pythonインタプリタがソースコードを読み込む場合、UTF-8コードで読み込むために、通常、ファイルの先頭にこの2行を書きます.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

最初の行の注釈はLinux/OS Xシステムに伝えるためで、これはPython実行可能なプログラムで、Windowsシステムはこの注釈を無視します;
2行目のコメントは、Python解釈器にUTF-8コードに従ってソースコードを読み取るように伝えるためです.そうしないと、ソースコードに書かれた中国語の出力が文字化けしてしまう可能性があります.
一般的なプレースホルダ
  • %d整数
  • %f浮動小数点数
  • %s文字列
  • %x 16進整数
  • 0と整数と小数の桁数を補うかどうかを指定することもできます.
    >>> '%2d-%02d' % (3, 1)
    ' 3-01'
    >>> '%.2f' % 3.1415926
    '3.14'

    注意:%sは常に機能し、任意のデータ型を文字列に変換して%%で1%を表します.
    リストリスト
    クラスのすべての学生の名前をリストすると、リストで表示できます.
    >>> classmates = ['Michael', 'Bob', 'Tracy']
    >>> classmates
    ['Michael', 'Bob', 'Tracy']

    変数classmatesはlistです.len()関数でlist要素の個数を得ることができます
    リストの末尾の要素を削除し、pop()メソッドで指定した位置の要素を削除し、pop(i)メソッドで
    メタグループtuple
    >>> t = (1)
    >>> t
    1

    定義されているのはtupleではなく、1という数です!これは,括弧()がtupleを表すこともできるし,数学式の中の括弧を表すこともできるので,曖昧さが生じるため,Pythonは,この場合,括弧で計算すると計算結果は自然に1と規定している.
    したがって、1つの要素のtuple定義にカンマを付けて曖昧さを解消する必要があります.以下が正しいフォーマットです.
    >>> t = (1,)
    >>> t
    (1,)

    練習する
    下記リストの【Lisa】を索引で取り出します.
    # -*- coding: utf-8 -*-
    
    L = [
        ['Apple', 'Google', 'Microsoft'],
        ['Java', 'Python', 'Ruby', 'PHP'],
        ['Adam', 'Bart', 'Lisa']
    ]
    #   Lisa:
    print(L[2][2])

    注:二重配列として、0から始まることを覚えておけばいいです.
    INPUT入力
    Input()が返すデータ型はstrであり,strは直接整数と比較することはできず,まずstrを整数に変換しなければならない.Pythonはint()関数を提供してこのことを完成しました.
    s = input('birth: ')
    birth = int(s)
    if birth < 2000:
        print('00 ')
    else:
        print('00 ')

    練習する
    小明は身長1.75、体重80.5 kg.BMIの公式(体重を身長の平方で割った)に基づいて明ちゃんのBMI指数を計算し、BMI指数に基づいてください.
    18.5未満:過軽18.5-25:正常25-28:過重28-32:肥満高32:重篤肥満if-elifで判断し、結果を印刷する:
    # -*- coding: utf-8 -*-
    
    height = 1.75
    weight = 80.5
    bmi = weight/height**2
    if bmi<=18.5:
        print("  ",bmi)
    elif bmi<=25:
        print("  ",bmi)
    elif bmi<=28:
        print("  ",bmi)
    elif bmi<=32:
        print("  ",bmi)
    else:
        print("    ",bmi)

    注:代数計算を行う場合^2をそのまま使用することはできません.これではコンパイルできません.**代わりに、**>\>*ループ
    for x in...ループは、各要素を変数xに代入し、インデントブロックを実行する文です.
    1-100の整数の和を計算するには、1から100まで書くのは少し難しいですが、幸いPythonはrange()関数を提供しており、整数シーケンスを生成し、list()関数でlistに変換することができます.例えばrange(5)で生成されるシーケンスは、0から5未満の整数である.
    >>> list(range(5))
    [0, 1, 2, 3, 4]

    練習する
    リストの各名前に対して、ループを使用してHello,xxxを印刷してください.
    # -*- coding: utf-8 -*-
    L = ['Bart', 'Lisa', 'Adam']
    x=0
    while x<3:
        print('hello,%s'%L[x])
        x=x+1
      
    x=0
    for x in L:
        print('hello,X')

    書くなら
    x=0
    while x<3:
        print('hello,'L[x])
        x=x+1

    これは間違っています.印刷を行う内部でループや呼び出しができないからでしょう.プレースホルダだけを使うのに適しています(これもプレースホルダの役割です.そうしないとプログラムの誤解を引き起こします)
    辞書dictと集合set
    Pythonでdictを次のように書きます.
    >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    >>> d['Michael']
    95

    「マイケル」のような名前を付けると、dictは内部でマイケルの対応する保存成績の「ページ番号」、つまり95という数字が保存されているメモリアドレスを直接計算することができ、直接取り出すので、速度が非常に速い.dictは空間で時間を取り替える方法である.注意:第一に、dictのkeyは可変オブジェクトでなければならないことを覚えておいてください.繰り返し要素はsetで自動的にフィルタされます.
    >>> s = set([1, 1, 2, 2, 3, 3])
    >>> s
    {1, 2, 3}

    add(key)メソッドでsetに要素を追加できます.要素はremove(key)メソッドで削除できます.
    また、setは数学的な意味での無秩序と重複要素のない集合と見なすことができるため、2つのsetは数学的な意味での交差、並列などの操作を行うことができる.
    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}

    setとdictの唯一の違いは、対応するvalueが格納されていないことだけですが、setの原理はdictと同じなので、同じように可変オブジェクトを入れることはできません.2つの可変オブジェクトが等しいかどうかを判断できないため、set内部に「重複要素がない」ことを保証することはできません.
    まとめ:
    今日の学習を通じて、pythonの大部分の基礎はやはりcと似ていることを理解して、思想も、初日も順調です.見るのが少し遅いので、心を静める必要があります.