ホームページ  >  記事  >  バックエンド開発  >  Python の基本

Python の基本

高洛峰
高洛峰オリジナル
2017-02-16 11:22:281595ブラウズ

前書き

Python は、退屈なクリスマスを解消するために 1989 年に Uncle Turtle によって書かれたプログラミング言語であり、現在では豊富な標準ライブラリとサードパーティ ライブラリが備わっています。
Python は、Web ウェブサイトやさまざまなネットワーク サービス、システム ツール、スクリプトの開発に適しており、科学計算などのために、他の言語で開発されたモジュールをパッケージ化するための「接着剤」言語として使用できます。

エディターが Python を学習する理由は 3 つあります:
必要なあらゆる種類のデータをクロールするには、Python を学習した方がよいでしょう。
データを分析してマイニングするには、Python を学ぶのもよいでしょう。
楽しくて興味深いことをするには、Python を学ぶのもよいでしょう。

準備

1. Python公式サイトからお好みのバージョンをダウンロードしてインストールします。エディタは最新バージョン3.6.0を使用します。

2. Pythonの統合開発環境であるOpen IDLEは、シンプルですが非常に便利です。 IDLE には、構文を色で強調表示するエディター、デバッグ ツール、Python シェル、および Python 3 のオンライン ドキュメントの完全なセットが含まれています。

hello world

1. IDLE で、print('hello world') と入力し、Enter キーを押して hello world を出力します。 print('hello world'),回车,则打印出hello world。
PS:语句末尾加不加分号;都可以,小编决定不加分号,更简单。

2、使用sublime新建文件hello.py,内容如下:

print('hello world')

在Windows下,shift+右键,在此处打开命令窗口,执行python hello.py,回车,则打印出hello world。

3、使用sublime新建文件hello.py,内容如下:

#!/usr/bin/env python
print('hello world')

在Linux或Mac环境下,可以直接运行脚本。首先添加执行权限chmod a+x hello.py,然后执行./hello.py。当然,也可以和Windows一样,使用python hello.py来执行脚本。

引入模块

1、新建name.py,内容如下:

name='voidking'

2、执行python name.py
3、进入python shell模式,执行import nameprint(name.name),则打印出voidking。

基础语法

常用函数(print)、数据类型、表达式、变量、条件和循环、函数。和其他语言类似,下面选择一部分展开。

list链表数组

1、定义数组
myList = ['Hello', 100, True]
2、输出数组
print(myList)
3、输出数组元素
print(myList[0])print(myList[-1])
4、追加元素到末尾
myList.append('voidking')
5、追加元素到头部
myList.insert(0,'voidking')
6、删除元素
myList.pop()myList.pop(0)
7、元素赋值
myList[0]='hello666'

tuple固定数组

1、定义数组
myTuple = ('Hello', 100, True)
错误定义:myTuple1=(1),正确定义:myTuple=(1,)
2、输出数组
print(myTuple)
3、输出数组元素
print(myTuple[0])
4、tuple和list结合
t = ('a', 'b', ['A', 'B'])t[2][0]='X'追記: ステートメントの最後にセミコロン ; を追加することも追加しないこともできます。編集者は、より簡単なセミコロンを追加しないことを決定しました。

2. sublime を使用して、次の内容の新しいファイル hello.py を作成します。

score = 75
if score>=60:
    print 'passed'

Windows では、Shift+右クリックしてコマンド ウィンドウを開き、python hello.py を実行して、 「hello world」と入力して出力します。

3. sublime を使用して、次の内容の新しいファイル hello.py を作成します。

if score>=60:
    print('passed')
else:
    print('failed')

Linux または Mac 環境では、スクリプトを直接実行できます。まず実行権限 chmod a+x hello.py を追加してから、./hello.py を実行します。もちろん、python hello.py を使用して Windows と同じようにスクリプトを実行することもできます。

モジュールを導入します

1. 次の内容で新しい name.py を作成します:

if score>=90:
    print('excellent')
elif score>=80:
    print('good')
elif score>=60:
    print('passed')
else:
    print('failed')

2. python name.py を実行します。

3. Python シェル モードに入り、import nameprint(name.name) を実行すると、voidking が出力されます。

基本構文

よく使用される関数 (出力)、データ型、式、変数、条件とループ、関数。他の言語と同様に、以下の部分を選択して展開します。

リストリンクリスト配列

1. 配列を定義します

myList = ['Hello', 100, True]

2. 出力配列

print(myList)

3 . 配列要素を出力します

print(myList[0])print(myList[-1])

4. 要素を末尾に追加します

myList.append (' voidking')

5. head に要素を追加します

myList.insert(0,'voidking')

6. 要素を削除します

myList.pop(), <code>myList.pop(0)

7. 要素の割り当て

myList[0]='hello666'

配列を定義します

1. myTuple = ('Hello', 100, True)

間違った定義: myTuple1=(1)、正しい定義: myTuple=(1,)

2. 配列の出力

print(myTuple)

3. 配列の要素の出力

print(myTuple[0])

4. タプルとリストの結合

t = ('a', 'b', ['A', 'B']), t[2][0]='X'

if ステートメント

if

L = [75, 92, 59, 68]
sum = 0.0
for score in L:
       sum += score
print(sum / 4)

Enter キーを 2 回押してコードを実行します。

if-else

sum = 0
x = 1
while x<100:
    sum += x
    x = x + 1
print(sum)

if-elif-else

sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 1
    if x > 100:
        break
print(sum)
    ループ
  • forループ

    L = [75, 98, 59, 81, 66, 43, 69, 85]
    sum = 0.0
    n = 0
    for x in L:
        if x < 60:
            continue
        sum = sum + x
        n = n + 1
    print(sum/n)
  • whileループ
  • for x in [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]:
        for y in [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;]:
            print(x + y)

    break

    d = {
        &#39;Adam&#39;: 95,
        &#39;Lisa&#39;: 85,
        &#39;Bart&#39;: 59,
        &#39;Paul&#39;: 75
    }
    print(d)
    print(d[&#39;Adam&#39;])
    print(d.get(&#39;Lisa&#39;))
    d[&#39;voidking&#39;]=100
    print(d)
    for key in d:
        print(key+&#39;:&#39;,d.get(key))
  • Continue
  • s = set([&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;])
    print(s)
    s = set([&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;, &#39;Paul&#39;])
    print(s)
    len(s)
    print(&#39;Adam&#39; in s)
    print(&#39;adam&#39; in s)
    for name in s:
        print(name)

    複数ループ

    s = set([(&#39;Adam&#39;, 95), (&#39;Lisa&#39;, 85), (&#39;Bart&#39;, 59)])
    for x in s:
        print(x[0]+&#39;:&#39;,x[1])
  • dict

dictの機能はキーのセットと値のセットの間のマッピング関係を確立します。

s.add(100)
print(s)
s.remove((&#39;Adam&#39;,95))
print(s)

set

🎜set は一連の要素を保持します。これはリストに非常に似ていますが、set の要素は繰り返されず、順序付けされていないため、dict のキーに非常に似ています。 🎜
del sum
L = [x*x for x in range(1,101)]
print sum(L)
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
my_abs(-100)
import math

def quadratic_equation(a, b, c):
    x = b * b - 4 * a * c
    if x < 0:
        return none
    elif x == 0:
        return -b / (2 *a)
    else:
        return ((math.sqrt(x) - b ) / (2 * a)) , ((-math.sqrt(x) - b ) / (2 * a))
print(quadratic_equation(2, 3, 0))
print(quadratic_equation(1, -6, 5))
🎜関数🎜🎜組み込み関数🎜
def average(*args):
    if args:
        return sum(args)*1.0/len(args)
    else:
        return 0.0

print(average())
print(average(1, 2))
print(average(1, 2, 2, 3, 4))
🎜カスタム関数🎜
L = [&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;]
L[0:3]
L[:3]
L[1:3]
L[:]
L[::2]
🎜導入関数ライブラリ🎜
L[-2:]
L[-3:-1]
L[-4:-1:2]
🎜変数パラメータ🎜
L = range(1, 101)
L[-10:]
L[4::5][-10:]
🎜スライス🎜🎜リストスライス🎜
def firstCharUpper(s):
    return s[0:1].upper() + s[1:]

print(firstCharUpper(&#39;hello&#39;))
🎜逆スライス🎜
for i in range(1,101):
    if i%7 == 0:
        print(i)
rree 🎜追記: 範囲は順序付けられ、リストは表現されますデフォルトでは関数形式になります。 range 関数を実行すると、リスト形式で表現できます。 🎜🎜文字列スライス🎜
L = [&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;]
for index, name in enumerate(L):
    print(index+1, &#39;-&#39;, name)

myList = zip([100,20,30,40],L);
for index, name in myList:
    print(index, &#39;-&#39;, name)
🎜反復🎜🎜Python の for ループは、リストやタプルだけでなく、他の反復可能なオブジェクトにも使用できます。 🎜反復操作はセットに対するもので、セットが順序付けされているかどうかに関係なく、for ループを使用して常にセットの各要素を順番に取り出すことができます。 🎜セットとは、以下を含む要素のセットを含むデータ構造を指します: 🎜🎜🎜🎜順序付きセット: リスト、タプル、str、および Unicode; 🎜🎜🎜🎜順序なしセット: set🎜🎜🎜🎜 順序なしセットであり、キーと値を持ちます。ペア: dict🎜🎜🎜
d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
print(d.values())
for v in d.values():
    print(v)
🎜インデックスの反復🎜🎜 順序付きセットの場合、要素にはインデックスが付けられます。for ループでインデックスを取得したい場合はどうすればよいでしょうか。その方法は enumerate() 関数を使用することです。 🎜
L = [&#39;Adam&#39;, &#39;Lisa&#39;, &#39;Bart&#39;, &#39;Paul&#39;]
for index, name in enumerate(L):
    print(index+1, &#39;-&#39;, name)

myList = zip([100,20,30,40],L);
for index, name in myList:
    print(index, &#39;-&#39;, name)

迭代dict的value

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
print(d.values())
for v in d.values():
    print(v)

PS:Python3.x中,dict的方法dict.keys(),dict.items(),dict.values()不会再返回列表,而是返回一个易读的“views”。这样一来,k = d.keys();k.sort()不再有用,可以使用k = sorted(d)来代替。
同时,dict.iterkeys(),dict.iteritems(),dict.itervalues()方法不再支持。

迭代dict的key和value

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
for key, value in d.items():
    print(key, &#39;:&#39;, value)

列表生成

一般表达式

L = [x*(x+1) for x in range(1,100)]
print(L)

复杂表达式

d = { &#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59 }
def generate_tr(name, score):
    if score >=60:
        return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
    else:
        return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)

tds = [generate_tr(name,score) for name, score in d.items()]
print('<table border="1">')
print('<tr><th>Name</th><th>Score</th><tr>')
print('\n'.join(tds))
print('</table>')

条件表达式

L = [x * x for x in range(1, 11) if x % 2 == 0]
print(L)
def toUppers(L):
    return [x.upper() for x in L if isinstance(x,str)]

print(toUppers(['Hello', 'world', 101]))

多层表达式

L = [m + n for m in 'ABC' for n in '123']
print(L)
L = [a*100+b*10+c for a in range(1,10) for b in range(0,10) for c in range(1,10) if a==c]
print(L)

后记

至此,Python基础结束。接下来,爬虫飞起!

更多Python,基础相关文章请关注PHP中文网!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。