Python全栈开发之基础语法

No1. Python语言介绍

详情见百度百科。。。

No.2 Python是一门怎么样的语言

详情在百度百科。。。

No3. Python能做什么

网络应用、桌面应用、系统运维、机器学习、科学计算。。。

  • 网络应用 Django/Flask/Tornado
  • 桌面应用 PyQt/PySide/wxPython/PyGTK
  • 系统运维 psutil/IPy/dnspython/difflib
  • 机器学习 Scikit-Learn/Statsmodels/PyMC/Shogun
  • 科学计算 NumPy/SciPy/Matplotlib

    No4. Python的优缺点

  • 简单,开发效率高,高级语言,跨平台。。。
  • 速度慢,代码不能加密,GIL锁。。。

    No5. Python的安装

  • Windows 下载Anaconda,点点点。。。
  • Linux 下载Anaconda,解压,安装。。。

    No6. 注释

  • 单行注释 # 一行
  • 多行注释 """一堆""" OR ‘‘‘一堆‘‘‘

    No.7 关键字

  • 具有特殊功能的标识符,这就是所谓的关键字
    import keyword
    print(keyword.kwlist)

    No.8 格式化

格式符号 备注
%c 字符
%s 字符串
%i 有符号十进制整数
%d 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写字母)
%X 十六进制整数(大写字母)
%f 浮点数

No.9 变量

Python的变量就是一个便利贴

  • 变量名只能是字母、数字、下划线的组合
  • 变量的第一个字符不能是数字
  • 变量名不能和关键字重名

No.10 运算符

  • 算术运算符

    运算符 备注
    +
    -
    *
    **
    /
    // 整除
    %
  • 赋值运算符
    运算符 实例
    = a = 1
    += a += 1 <=> a = a + 1
    -= a -= 1 <=> a = a -1
    *= a = 2 <=> a = a 2
    **= a = 2 <=> a = a 2
    /= a /= 2 <=> a = a / 2
    //= a //= 2 <=> a = a // 2
    %= a %= 2 <=> a = a % 2
  • 关系运算符
    运算符 备注
    == 等于
    != 不等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
  • 逻辑运算符
    运算符 备注
    and x和y均为真,返回真
    or x或者y为真,返回真
    not x为假,返回真
  • 位运算符
    运算符 备注
    & 按位与运算符,参与运算的两个值,如果相同位都为1,则结果为1
    | 按位或运算符,参与运算的两个值,只要相同位一个为1,则结果为1
    ^ 按位异或运算符,参与运算的两个值,当相同位不同时,则结果为1
    ~ 按位取反运算符,即1变0,0变1
    << 左移运算符,运算符的各二进制位向左移动若干位
    >> 右移运算符,运算符的各二进制位向右移动若干位
  • 成员运算符
    运算符 备注
    in 如果在序列中存在返回真
    not in 如果在序列中不存在返回真
  • 身份运算符
    运算符 备注
    is 判断两个标识符是不是引用自一个对象
    is not 判断两个标识符是不是不是引用自一个对象

No.11常用数据类型转换

  • index(x[,base]) 将x转换为一个指定进制的整数,默认为十进制
  • long(x[,base]) 将x转换为一个指定进制的整数,默认为十进制
  • float(x) 将x转换为一个浮点数
  • str(x) 将x转换为一个字符串
  • repr(x) 将x转换为表达式字符串
  • eval(x) 用来计算字符串表达式并返回一个对象
  • tuple(x) 将x转换成一个元祖
  • list(x) 将x转换成一个列表
  • chr(x) 将x(整数)转换为字符形式
  • ord(x) 将x(字符)转换成整数形式
  • hex(x) 将x转换成十六进制
  • oct(x) 将x转换成八进制
  • bin(x) 将x转换成二进制

No.12 判断语句

  • if-else
if 条件:
    do something
else:
    do something
  • elif

    if 条件:
    do something
    elif 条件:
    do something
  • if嵌套
    if 条件:
    if 条件:
        do something
    elif 条件:
        do something
    elif 条件
    if 条件:
        do something
    elif 条件:
        do something
    else:
    if 条件:
        do something
    elif 条件:
        do something

No.12 循环语句

  • while
while 条件:
    do something
栗子:
i = 0
sum = 0
while i < 100:
    sum += i
    i += 1
  • while循环嵌套
while 条件:
    do something
    while 条件:
        do something
栗子:
i = 1
while i <= 9:
    j = 1
    while j <= i
        print("%d*%d=%-2d"%(j,i,i*j),end=‘‘)
        j += 1
    print(‘\n‘)
    i += 1
  • for循环

    在Python中for循环可以遍历任何序列

for 临时变量 in 序列:
    do something
else:
    do something
栗子:
name = ‘kernel‘
for i in name:
    print(i)
  • break和continue
    break的作用是用来结束整个循环

    栗子:
    i = 0
    while i <= 100:
    i += 1
    if i == 5:
        break   

    continue的作用是用来结束本次循环,然后执行下一次循环

栗子:
i = 0
while i <= 100:
    i += 1
    if i == 5:
        continue

No.13 简述拷贝

要理解深浅拷贝需要理解下面的概念
变量->引用->对象->切片->拷贝
变量是便利贴
对象是被分配的一块内存,存储其代表的值
引用是自动形成的从变量到对象的指针
不变对象是指一旦创建就不可以改变的对象,例如字符串、数字、元组
可变对象是指可以改变的对象,例如列表、字典

  • 不可变对象的赋值
a = 1
b = a
print(a) # 1
print(b) # 1
b = 2
print(a) # 1,并没有随着b的改变而改变
print(b) # 2
  • 可变对象的赋值
a = [1,2,3,4]
b = a
print(a) # [1,2,3,4]
print(b) # [1,2,3,4]
b[3] = 5
print(a) # [1,2,3,5]
print(b) # [1,2,3,5]
  • 深浅拷贝

    浅拷贝:只拷贝顶级的对象

    深拷贝:拷贝所有对象

import copy
l1 = [1,2,3,4,[‘a‘,‘b‘]]
l2 = copy.copy(l1)
print(l1) # [1,2,3,4,[‘a‘,‘b‘]]
print(l2) # [1,2,3,4,[‘a‘,‘b‘]]
l2[0] = 11
l2[4][0] = ‘aa‘
print(l1) # [11,2,3,4,[‘a‘,‘b‘]]
print(l2) # [11,2,3,4,[‘aa‘,‘b‘]]
import copy
l1 = [1,2,3,4,[‘a‘,‘b‘]]
l2 = copy.deepcopy(l1)
print(l1) # [1,2,3,4,[‘a‘,‘b‘]]
print(l2) # [1,2,3,4,[‘a‘,‘b‘]]
l2[0] = 11
l2[4][0] = ‘aa‘
print(l1) # [11,2,3,4,[‘aa‘,‘b‘]]
print(l2) # [11,2,3,4,[‘aa‘,‘b‘]]

结论:
深浅拷贝都是对源对象的复制,占用不同的内存空间
如果源对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
如果源对象不止一级目录的话,源做任何改动,都要影响浅拷贝,但不影响深拷贝
序列对象的切片其实是浅拷贝,即只拷贝顶级的对象

原文地址:http://blog.51cto.com/13559120/2287464

时间: 2024-11-07 10:53:17

Python全栈开发之基础语法的相关文章

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

Python全栈开发【基础二】

Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 1 class int(object): 2 """ 3 int(x=0) -> integer 4 int(x, base=10) -&g

Python全栈开发【基础四】

Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 匿名函数 lambda表达式:对于简单的函数,存在一种简便的表示方式,即lambda表达式 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 匿名函数主要是和其它函数搭配使用 举例: 1 ########

Python全栈开发——01基础

#!/usr/bin/env python 可声明liunx所使用的python解释器(特有) 编码 #-*- coding:utf-8 -*- python2有中文时要加的编码 在头文件加 ,Python3不用使用,默认为utf-8(也可写成utf8) python语法 #变量名   1.字母   2.数字   3.下划线 #永远等待,直到用户输入值,n代指用户输入的值 n=input('请输入用户名:') #条件语句 if 条件: 语句块 elif 条件: 语句块 else: 语句块 #假如

python全栈开发-Day8 函数基础

python全栈开发-Day8 函数 一 .引子 1. 为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大  2. 函数是什么? 针对二中的问题,想象生活中的例子,修理工需要实现准备好工具箱里面放好锤子,扳手,钳子等工具,然后遇到锤钉子的场景,拿来锤子用就可以,而无需临时再制造一把锤子. 修理工===>程序员 具备某一功能的工具===>函数

Python 全栈开发【第一篇】:目录

Python 全栈开发[第0篇]:目录 第一阶段:Python 开发入门 Python 全栈开发[第一篇]:计算机原理&Linux系统入门 Python 全栈开发[第二篇]:Python基础语法入门 Python 全栈开发[第三篇]:数据类型.字符编码.文件操作 第二阶段:函数编程&常用标准库 Python 全栈开发[第四篇]:函数.递归.生成器.迭代器 Pyhton 全栈开发[第五篇]:常用模块学习 第三阶段:面向对象编程&网络编程基础 Python 全栈开发[第六篇]:面向对象

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

Python全栈开发

Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用

python全栈开发目录

python全栈开发目录 linux命令 初识python python基础数据类型 函数编程.set.深浅拷贝 内置函数 文件操作 装饰器 迭代器和生成器 常用模块 初识类和对象 类和对象(进阶) 反射 异常处理 socket.IO多路复用 线程.进程.协程 HTML CSS JavaScript DOM文档操作 jQuery实例 web框架本质 Tornado mysql基础 mysql进阶 ..... 基本算法 递归--二分法查找 冒泡排序 更多 线程池