搜尋
首頁後端開發Python教學python基礎知識教學

python基礎知識教學

Jun 23, 2017 pm 03:33 PM
python基礎

第一節Python檔案類型

原始碼

  • Python原始碼的檔案以「py」為副檔名,由Python程式解釋,不需要編譯

字節程式碼

  • Python原始檔經過編譯後產生的副檔名為「pyc」的檔案

  • 編譯方法

    import py_compile
    py_compile.compile("hello.py")

優化程式碼

  • 已最佳化的源文件,擴展名為“.pyo”

  • python -O -m py_compile hello.py

#以上三種皆可直接執行


#第二節Python變數

變數的定義

  • 變數是電腦記憶體中的一塊區域,變數可以儲存規定範圍內的值,而且值可以改變。

變數的命名

  • 變數名稱有字母、數字、底線組成。

  • 數字不能開頭

  • 不可以使用關鍵字

  • a  a1  a_ a_1

變數的賦值

  • #是變數宣告與定義的過程

    a = 1
    ld(a)


第三節運算子與表達式

#案例:寫一個自己的四則運算子

#!/usr/bin/python

import sys
running = True

while running:
    try:
        t = int(raw_input())
        p = int(raw_input())
    except EOFError:
        break

    print 'operator + result\n', t + p
    print 'operator - result\n', t - p
    print 'operator * result\n', t * p
    print 'operator / result\n', t / p

Python運算子包含

  • #賦值運算子

    x = 3, y = 'abcde'      #等于
    x += 2                  #加等于
    x -= 2                  #减等于
    x *= 2                  #乘等于
    x /= 2                  #除等于
    x %= 2                  #求余等于
算術運算子

x + y                   #加法
x - y                   #减法
x * y                   #乘法
x / y                   #实数除法
x // y                  #整数除法
x % y                   #求余
x**y                    #求幂

  • 關係運算子

    x  y                   #小于
    x = y                  #大于等于
    x != y                  #不等于
    x == y                  #完全等于
邏輯運算子

and                     #与
or                      #或
not                     #非

  • 表達式

    #表達式是將不同資料(包括變數、函數)用運算子按一定規則連接起來的一種式子
  • 運算子的優先權

  • 在常規表達式中,存在多個運算符,例如:

    1+2*3-1/2*3/2,那麼就存在著計算優先權的問題

  • 一般的,運算子存在高低級別,在同一個表達式中,高優先級的運算子:例如:

    1*2+3*3 = 11

    而不是15

##對於同級別的運算符,按從左到右處理。例如:
8*4/2*3 = 48

運算子優先權由低到高是:
    Lambda
    逻辑或:or
    逻辑与:and
    逻辑非:not
    成员测试:in      not in
    同一性测试:is      is not
    比较:   >=  !=  ==
    按位或:|
    按位异或:^
    按位与:&
    移位:>
    加法与减法:+   -
    乘法、除法与取余:*   /   %
    正负号:+x  -x
    按位翻转:~x
    指数:**
  • 第四節資料型別

  • 案例
  • #123
  • 與"123"

    一樣嗎

    • () [] {}
    • 資料型別
    • #電腦是用來輔助人們的,在程式設計中也映射了現實世界的分類,以便於抽象的分析。
    • 數字
    • 字串
    • #清單

    • 元組

    • 字典

    數字型別

      ##整數
    • #長整形
    • 浮點型別

      #複數型
    • 數字型別-整數int
    • 整數int表示的範圍-2147483648到2147483647。例如:0,100,-100

    int的範圍範例:

    num=2147483647
    type(num)       #输出结果: <type></type>
    • 數字型別-長整數long

    • #long的範圍很大很大,幾乎可以說任意大的整數都可以儲存。
    • 為了區分普通整數和長整數,需要在整數後面加上L或小寫l。例如:
    51856678L, -0x22345L

    num = 11
    type(num)       #输出结果: <type>
    num = 9999999999999999999999
    type(num)       #输出结果: <type></type></type>
    • 數字型別-浮點型float

    • #例如:0.0 , 12.0, -18.8, 3e+7

    • #範例:

      num = 0.0
      type(num)       #输出结果: <type>
      num = 12
      type(num)       #输出结果: <type>
      num = 12.0
      type(num)       #输出结果: <type></type></type></type>

    數字型別-複數型complex

    • Python對複數提供內嵌支持,這是其他大部分軟體所沒有的

    • 複數舉例:

      3.14j, 8.32e-36j


    範例:

    >>> num=3.14j
    >>> type(num)
    <type>
    >>> num
    3.14j
    >>> print num
    3.14j</type>

    字串String
    • 使用引號定義的一組可以包含數字、字母、符號(非特殊系統符號)的集合。
    Strval='This is a test'
    Strval="This is a test"
    Strval="""This is a test"""
  • 三重引號(docstring)通常用來製作字串,在物件導向時詳解
    • 第五節序列

      基本概念
  • 列表、元組和字串都是序列

    • 序列的兩個主要特點是索引操作符和切片操作符。

  • 索引運算子讓我們可以從序列中抓取一個特定項目。

    ######切片運算子讓我們能夠取得序列的一個切片,也就是一部分序列。 ###############索引同樣可以是負數,位置是從序列尾開始計算的。 ###############因此,shoplist[-1]表示序列的最後一個元素,而shoplist[-2]抓取序列的倒數第二個項目###### #########切片運算子是序號後面跟著一個方括號,方括號中有一對可選的數字,並用冒號分割。 ###
    • shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。shoplist[:]返回整个序列的拷贝。你可以用负数做切片。负数用在从序列尾开始计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片

    • 注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。

    • 切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。

    • 注意:返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。

    序列的基本操作

    • len():求序列的长度

    • +:连接两个序列

    • *:重复序列元素

    • in:判断元素是否在序列中

    • max():返回最大值

    • min():返回最小值

    • cmp(tuple1, tuple2):比较两个序列值是否相同

    元组()

    • 元组和列表十分类似,只不过元组和字符串一样是不可变的,即你不能修改元组。

      • 元组通过圆括号中用逗号分割的项目定义。

      • 元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。

    • 创建元组

      • 一个空的元组由一对空的圆括号组成,如:myempty=()

      • 含有单个元素的元组,singleton=(2)

      • 一般的元组

        zoo=('wolf', 'elephant', 'penguin')
        new_zoo=('monkey', 'dolphin', zoo)
    • 元组操作

      • 元组和字符串一样属于序列类型,可通过索引和切片操作。

      • 元组值亦不可变


    第六节 序列-列表

    列表[]

    • list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。

    • 列表是可变类型的数据。

    • 列表的组成:用[]表示列表,包含了多个以逗号分隔开的数字,或者子串。

      list1=['Simon', 'David', 'Clotho']
      list2=[1,2,3,4,5]
      list3=["str1", "str2", "str3", "str4"]

    列表操作

    • 取值

      • 切片和索引

      • list[]

    • 添加

      • list.append()

    • 删除

      • del(list[])

      • list.remove(list[])

    • 修改

      • list[]=x

    • 查找

      • var in list

    • 示例:

      >>> list1=['jack', 20, 'male']
      >>> list1
      ['jack', 20, 'male']
      >>> list1.append('USA')
      >>> list1
      ['jack', 20, 'male', 'USA']
      >>> list1.remove('USA')
      >>> list1
      ['jack', 20, 'male']
      >>> help(list1.remove)
      >>> list1[1]=22
      >>> list1
      ['jack', 22, 'male']
      >>> 22 in list1
      True

    对象与类快速入门

    • 对象和类,更好的理解列表。

    • 对象=属性+方法

    • 列表是使用对象和类的一个例子

      • 当你使用变量i并给它赋值时候,比如整数5,你可以认为你创建了一个类(类型)int的对象(实例)i。

      • help(int)

    • 类也有方法,即仅仅为类而定义的函数。

      • Python为list类提供了append方法,这个方法让你在列表尾添加一个项目。

      • mylist.append('an item')列表mylist中增加字符串。注意,使用点号来使用对象的方法。

      • 仅在该类的对象可以使用这些功能。

      • 例如:

    • 类也有变量,仅为类而定义的变量

      • 仅在该类的对象可以使用这些变量/名称

      • 通过点号使用,例如mylist.field。


    第七节 字典

    基本概念

    • 字典是Python中唯一的映射类型(哈希表)。

    • 字典对象是可变的,但是字典的键必须使用不可变的对象,并且一个字典中可以使用不同类型的键值。

    • keys()或者values()返回键列表或值列表。

    • items()返回包含键值对的元值。

    • 示例:

      >>> dict={'name': 'jack', 'age' : 30, 'gender':'male' }
      >>> dict['name']
      'jack'
      >>> dict['age']
      30
      >>> dict['gender']
      'male'
      >>> dict.keys()
      ['gender', 'age', 'name']
      >>> dict.values()
      ['male', 30, 'jack']
      >>> dict.items()
      [('gender', 'male'), ('age', 30), ('name', 'jack')]

    创建字典

    • dict = {}

    • 使用工厂方法dict()

      fdict=dict(['x',1], ['y',2])
    • 内建方法:fromkeys(),字典中的元素具有相同的值,默认为None

      ddict={}.fromkeys(('x','y'), -1)
      #输出结果:{'x': -1, 'y': -1}

    访问字典中的值

    • 直接使用key访问:key不存在会报错,可以使用has_key()或者in和not in判断,但是has_key方法即将废弃。

    • 循环遍历:for key in dict1.keys():

    • 使用迭代器:for key in dict1:

    更新和删除

    • 直接用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中。

    • del dict1['a']:删除字典中键值为a的元素

    • dict1.pop('a'):删除并且返回键为'a'的元素

    • dict1.clear():删除字典所有元素

    • del dict1:删除整个字典

    字典相关的内建函数

    • type(), str(), cmp()(cmp很少用于字典的比较,比较依次是字典的大小、键、值)

    工厂函数dict()

    * 例如:

    dict(zip(('x','y'),(1,2)))
    dict(x=1,y=2)
    #输出结果:{'x': 1, 'y': 2}
    • 使用字典生成字典比用copy慢,因此这种情况下推荐使用copy()

    常用函数

    • len():返回序列的大小

    • hash() : 用于判断某个对象是否可以做一个字典的键,非哈希类型报TypeError错误

    • dict.clear(): 删除字典中的所有元素

    • dict.fromkeys(seq, val=None): 以seq中的元素为键创建并返回一个字典,val为制定默认值

    • dict.get(key, default=None): 返回key的value,如果该键不存在返回default指定的值

    • dict.has_key(key):判断字典中是否存在key,建议使用in或not in代替

    • dict.items():返回健值对元组的列表

    • dict.keys():返回字典中键的列表

    • dict.iter*(): iteritems(), iterkeys(), itervalues()返回迭代子而不是列表

    • dict.pop(key[,default]):同get(),区别是若key存在,删除并返回dict[key],若不存在则返回default,未指定值,抛出KeyError异常

    • dict.setdefault(key, default=None):同set(),若key存在则返回其value,若key不存在,则dict[key]=default

    • dict.update(dict2):将dict2中的键值对添加到字典dict中,如果有重复则覆盖,原字典不存在的条目则添加进来。

    • dict.values():返回字典中所有值的列表


    第八节 流程控制

    if else

    • if语句

      • 一个字符串是否为空的

      • 一个运算结果是否为零

      • 一个表达式是否可用

      • True:表示非空的量(比如:string, tuple, set, dictonary等),所有非零数

      • False:表示0,None,空的量等。

      • Python的if语句类似其他语言。if语句包含一个逻辑表达式,使用表达式比较,在比较的结果的基础上作用出决定。

        if expression:
            statement
      • 注:Python使用缩进作为其语句分组的方法,建议使用4个空格代替缩进。

      • 逻辑值(bool)用来表示诸如:对与错,真与假,空与非空的概念

      • 逻辑值包含了两个值:

      • 作用:主要用于判读语句中,用来判断

      • else语句

        • 语法

          if expression:
              statement
          else:
              statement
        • 如果条件表达式if语句解析为0或false值。else语句是一个可选的语句,并最多只能有一个else语句。

      • elif语句

        • 语法

          if expression:
              statement
          elif expression2:
              statement
          elif expression3:
              statement
          else:
              statement
        • elif语句可以让你检查多个表达式为真值,并执行一个代码块,elif语句是可选的。可以有任意数量的elif。

      • 嵌套的if...elif...else构造

        if expression1:
            statement
            if expression2:
                statement
            else:
                statement
        else:
            statement
      • 使用逻辑运算符and、or、not

        if expression1 and expression2:
            statement
        else:
            statement

      for循环

      • 循环是一个结构,导致一个程序重复一定次数。

      • 条件循环也是如此。当条件变为假,循环结束。

      • for循环:

        • 在Python for循环遍历序列,如一个列表或一个字符。

      • for循环语法:

        for iterating_var in sequence:
            statements
      • 注:如果一个序列包含一个表达式列表,它是第一个执行。
        然后,该序列中的第一项赋值给迭代变量iterating_var。接下来,执行语句块。列表中的每个项目分配到iterating_var,代码块被执行,直到整个序列被耗尽。

      • 注:格式遵循代码块缩进原则

      • 例子:

        for letter in 'python':
            print 'Current Letter: ', letter
        
        fruits=['banana', 'apple', 'mango']
        for fruit in fruits:
            print 'Current fruit: ', fruit
      • 迭代序列指数(索引):

        • 遍历每个项目的另一种方法是由序列本身的偏移指数(索引)

        • 例子

          fruits=['banana', 'apple', 'mango']
          for index in range(len(fruits)):
              print 'Current fruit: ', fruits[index]
        • 注:‘迭代’,指重复执行一个指令。

      range

      • 循环结构是用于迭代多个项的for语句,迭代形式可以循环序列的所有成员。

      • range(i,j[,步进值])

        • 如果所创建的对象为整数,可以用range

        • i为初始数值

        • j为终止数值,但不包括在范围内,步进值为可选参数,不选的话默认是1

        • i不选择的话默认为0

      • 例子:

        sum = 0
        for num in range(1, 101, 1):
            sum += num
        print sum

      遍历字典

          dic={'name': 'jack', 'age': 20, 'gender':'male'}
          for key in dic:
              val = dic[key]
              print key,val
      
          for key,val in dic.items():
              print key, val

      for循环控制

          for x in range(10):
              if x == 1:
                  pass
              if x == 2:
                  continue
              if x == 5:
                  break;
          else
              print 'end'

      while循环

      • while循环,直到表达式变为假。表达的是一个逻辑表达式,必须返回一个true或false值

      • 语法:

        while expression:
            statement
      • 注:遵循代码块缩进原则

        while x != 'q':
            x = raw_input('please input something, q for quit: ')
            if not x:
                break
        else:
            print 'end'

      以上是python基礎知識教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      陳述
      本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
      Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

      Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

      Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

      Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

      2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

      2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

      Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

      Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

      您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

      兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

      如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

      如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

      如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

      使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

      Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Apr 02, 2025 am 07:12 AM

      Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

      See all articles

      熱AI工具

      Undresser.AI Undress

      Undresser.AI Undress

      人工智慧驅動的應用程序,用於創建逼真的裸體照片

      AI Clothes Remover

      AI Clothes Remover

      用於從照片中去除衣服的線上人工智慧工具。

      Undress AI Tool

      Undress AI Tool

      免費脫衣圖片

      Clothoff.io

      Clothoff.io

      AI脫衣器

      AI Hentai Generator

      AI Hentai Generator

      免費產生 AI 無盡。

      熱門文章

      R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
      3 週前By尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O.最佳圖形設置
      3 週前By尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O.如果您聽不到任何人,如何修復音頻
      3 週前By尊渡假赌尊渡假赌尊渡假赌
      WWE 2K25:如何解鎖Myrise中的所有內容
      4 週前By尊渡假赌尊渡假赌尊渡假赌

      熱工具

      SAP NetWeaver Server Adapter for Eclipse

      SAP NetWeaver Server Adapter for Eclipse

      將Eclipse與SAP NetWeaver應用伺服器整合。

      DVWA

      DVWA

      Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

      SublimeText3 英文版

      SublimeText3 英文版

      推薦:為Win版本,支援程式碼提示!

      記事本++7.3.1

      記事本++7.3.1

      好用且免費的程式碼編輯器

      Atom編輯器mac版下載

      Atom編輯器mac版下載

      最受歡迎的的開源編輯器