>백엔드 개발 >파이썬 튜토리얼 >파이썬 기본 지식 교육

파이썬 기본 지식 교육

巴扎黑
巴扎黑원래의
2017-06-23 15:33:292347검색

섹션 1 Python 파일 형식

소스 코드

  • Python 소스 코드 파일은 "py" 확장자를 가지며 Python 프로그램에 의해 해석되므로 컴파일할 필요가 없습니다

바이트 코드

  • Python 소스 file 확장자가 "pyc"인 컴파일된 파일

  • 컴파일 방법

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

최적화된 코드

  • 확장자가 ".pyo"인 최적화된 소스 파일

  • python -O -m py_compile hello.pypython -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                  #大于等于
    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 &#39;int&#39;>

数字类型-长整数long

  • long的范围很大很大,几乎可以说任意大的整数均可以存储。

  • 为了区分普通整数和长整数,需要在整数后加L或小写l。例如:51856678L, -0x22345L

    num = 11
    type(num)       #输出结果: <type &#39;int&#39;>
    num = 9999999999999999999999
    type(num)       #输出结果: <type &#39;long&#39;>

数字类型-浮点型float

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

  • 示例:

    num = 0.0
    type(num)       #输出结果: <type &#39;float&#39;>
    num = 12
    type(num)       #输出结果: <type &#39;int&#39;>
    num = 12.0
    type(num)       #输出结果: <type &#39;float&#39;>

数字类型-复数型complex

  • Python对复数提供内嵌支持,这是其他大部分软件所没有的

  • 复数举例: 3.14j, 8.32e-36j

  • 위 세 가지 모두 직접 실행할 수 있습니다

섹션 2 Python 변수

    변수의 정의
  • 변수는 컴퓨터 메모리의 일부입니다. 영역, 변수는 지정된 범위 내에서 값을 저장하고 값을 변경할 수 있습니다.
  • 변수 이름 지정


변수 이름은 문자, 숫자, 밑줄로 구성됩니다.

숫자로 시작할 수 없습니다. 可以은 키워드로 사용할 수 없습니다.
  • A1 A1 A_ A_1 변수 할당
  • 은 변수 선언 및 정의 과정입니다.
>>> num=3.14j
>>> type(num)
<type &#39;complex&#39;>
>>> num
3.14j
>>> print num
3.14j
  • 섹션 3 연산자 및 표현식

    사례: 4개의 산술 연산자 작성
Strval='This is a test'
Strval="This is a test"
Strval="""This is a test"""
Python 연산자 include
  • 할당 연산자
      zoo=('wolf', 'elephant', 'penguin')
      new_zoo=('monkey', 'dolphin', zoo)
    • 산술 연산자
    • list1=['Simon', 'David', 'Clotho']
      list2=[1,2,3,4,5]
      list3=["str1", "str2", "str3", "str4"]
    • 관계 연산자

      >>> 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
      🎜🎜🎜논리 연산자 🎜
      >>> 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')]
      🎜🎜🎜Expressions🎜🎜🎜🎜표현식은 특정 규칙에 따라 연산자를 사용하여 다양한 데이터(변수 및 함수 포함)를 연결하는 공식입니다. 🎜🎜🎜🎜연산자의 우선순위🎜🎜🎜🎜정규식에는 여러 개의 연산자가 있습니다 , 예: 1+2*3-1/2*3/2, 그러면 우선순위를 계산하는 데 문제가 있습니다🎜🎜🎜🎜일반적으로 연산자는 동일한 표현식에서 높은 수준과 낮은 수준을 갖습니다. , 우선순위가 높은 연산자: 예: 15🎜🎜🎜🎜대신 1*2+3*3 = 11 같은 수준의 연산자의 경우 왼쪽에서 오른쪽으로 처리됩니다. 예: <code>8*4/2*3 = 48🎜🎜🎜🎜연산자 우선 순위는 낮은 것부터 높은 것까지입니다: 🎜
      fdict=dict(['x',1], ['y',2])
      🎜🎜🎜🎜🎜🎜섹션 4 데이터 유형🎜🎜Case🎜🎜 🎜 🎜123"123"는 동일합니까?🎜🎜🎜🎜() [] {}🎜🎜🎜🎜데이터 유형🎜🎜🎜 🎜 컴퓨터는 사람을 보조하는 데 사용되며, 현실 세계의 분류도 추상적인 분석을 용이하게 하기 위해 프로그래밍에 매핑됩니다. + 성형외과🎜🎜🎜🎜롱성형외과🎜🎜🎜🎜부동소수점형 🎜🎜🎜🎜복수형 🎜🎜🎜🎜숫자형 - 정수 int🎜🎜🎜🎜정수 int로 표현되는 범위는 -2147483648 ~ 2147483647. 예: 0, 100, -100🎜🎜🎜🎜 int 범위의 예: 🎜
      ddict={}.fromkeys(('x','y'), -1)
      #输出结果:{'x': -1, 'y': -1}
      🎜🎜🎜숫자 유형 - 긴 정수 long🎜🎜🎜🎜long은 거의 모든 큰 범위를 갖는다고 할 수 있습니다. 정수를 저장할 수 있습니다. 🎜🎜🎜🎜일반정수와 장정수를 구분하려면 정수 뒤에 L이나 소문자 l을 붙여야 합니다. 예: 51856678L, -0x22345L🎜
      dict(zip(('x','y'),(1,2)))
      dict(x=1,y=2)
      #输出结果:{'x': 1, 'y': 2}
      🎜🎜🎜숫자 유형 - 부동 소수점 float🎜🎜🎜🎜예: 0.0, 12.0, -18.8, 3e+7🎜 🎜 🎜🎜예: 🎜
      if expression:
          statement
      🎜🎜🎜숫자 유형-복수 복소수🎜🎜🎜🎜Python은 대부분의 다른 소프트웨어에서 사용할 수 없는 복소수에 대한 기본 지원을 제공합니다🎜🎜🎜🎜복소수 예: 3.14j , 8.32 e-36j🎜🎜🎜🎜예: 🎜
      if expression:
          statement
      else:
          statement
      🎜🎜🎜String String🎜🎜🎜🎜숫자, 문자, 기호(비특수 시스템 기호)를 포함할 수 있는 따옴표를 사용하여 정의된 집합입니다. 🎜R
      if expression:
          statement
      elif expression2:
          statement
      elif expression3:
          statement
      else:
          statement
      ATIPLE 인용 표시 (DOCSTRING)는 일반적으로 객체 지향적 인 설명 5 시퀀스 🎜🎜 기본 개념, 튜플 및 문자열에서 자세한 설명을 만드는 데 사용됩니다. 🎜🎜🎜🎜 시퀀스의 두 가지 주요 기능은 인덱싱 연산자와 슬라이싱 연산자입니다. 🎜🎜🎜🎜🎜인덱스 연산자를 사용하면 시퀀스에서 특정 항목을 가져올 수 있습니다. 🎜🎜🎜🎜슬라이스 연산자를 사용하면 시퀀스의 슬라이스, 즉 시퀀스의 일부를 얻을 수 있습니다. 🎜🎜🎜🎜🎜 인덱스는 음수일 수도 있으며 위치는 시퀀스의 끝에서 계산됩니다. 🎜🎜🎜🎜🎜따라서 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'

        위 내용은 파이썬 기본 지식 교육의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

        성명:
        본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.