Python小白,转行,入门必看精华。

Python简介

Python语言介绍

python的创始人:Guido Van Rossum

Python是一门什么样的语言

编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和弱类型定义语言

(1)编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成对应的可执行代码,这个过程就是编译(Compile),而负责编译的程序就被称为编译器(Compiler)

(2)通常我们所说的动态语言,静态语言是指动态类型语言和静态类型语言

(3)动态类型语言:是指在运行期间采取做数据类型检查的语言。即在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。典型的是python和Ruby

(4)静态类型语言:数据类型是在编译期间检查的,也就是说在写程序的时候要声明所有变量的数据类型。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#,JAVA

Python能做什么

   Web应用开发

   Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

   操作系统管理、服务器运维的自动化脚本

   在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

   科学计算

   NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。

   桌面软件

   PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。

   服务器软件(网络软件)

   Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

   游戏

   很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。

   构思实现,产品早期原型和迭代

   YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。

Python的优缺点

优点:简单、开发效率高、高级语言、可移植性、可扩展性、可嵌入性

缺点:速度慢,但是相对的、代码不能加密、线程不能利用多CPU问题

进群一起学习Python,欢迎各位大牛指教,小白求学。491308659邀请码(耀文)

Python解释器

Cpython、IPython、PyPy、Jython、IronPython

Python的安装

Linux下的安装

#安装sqlite-devel

yum -y install sqlite-devel

#安装依赖

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

#下载安装

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

mkdir -p /usr/local/python3

tar -zxvf Python-3.6.1.tgz

cd Python-3.6.1

./configure --prefix=/usr/local/python3

make

make install

#软连接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

#环境

vim ~/.bash_profile

    PATH=$PATH:$HOME/bin:/usr/local/python3/bin

    export PATH

source ~/.bash_profile

Windows下的安装

1、下载安装包

    https://www.python.org/downloads/

2、安装

    默认安装路径:C:\python35

3、配置环境变量

    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

    如:原来的值;C:\python35,切记前面有分号

Python入门

字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,

注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

python2.x版本,默认支持的字符编码为ASCll    python3.x版本,默认支持的是Unicode,不用声明字符编码可以直接显示中文

注释

单行注视:# 被注释内容

多行注释:""" 被注释内容 """

注释快捷键:选中被注释的内容,ctrl+?注释选中的内容,再次ctrl+?取消注释

关键字

python一些具有特殊功能的标示符,这就是所谓的关键字

关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标示符

      and     as      assert     break     class      continue    def     del

      elif    else    except     exec      finally    for         from    global

      if      in      import     is        lambda     not         or      pass

      print   raise   return     try       while      with        yield

可以通过下面的方式查看关键字

importkeyword

print(keyword.kwlist)

格式化输出

变量

变量定义的规则:

  变量名只能是 字母、数字或下划线的任意组合

  变量名的第一个字符不能是数字

  关键字不能声明为变量名

运算符

常用数据类型转换

判断语句

if-else

if 条件:

       满足条件时要做的事情1

       满足条件时要做的事情2

       满足条件时要做的事情3

       ...(省略)...    else:

       不满足条件时要做的事情1

       不满足条件时要做的事情2

       不满足条件时要做的事情3

       ...(省略)...

实例:

name = input('请输入用户名字:')

password = input('请输入密码:')

if name == 'root' and password == '123':

    print('root login success')

else:

    print('用户名或密码错误')

elif

if xxx1:

   事情1elif xxx2:

   事情2elif xxx3:

   事情3

当xxx1满足时,执行事情1,然后整个if结束

当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束

当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

实例:

score = 77

    if score>=90 and score<=100:

        print('本次考试,等级为A')

    elif score>=80 and score<90:

        print('本次考试,等级为B')

    elif score>=70 and score<80:

        print('本次考试,等级为C')

    elif score>=60 and score<70:

        print('本次考试,等级为D')

    elif score>=0 and score<60:

        print('本次考试,等级为E')

if嵌套

if 条件1:

    满足条件1 做的事情1

    满足条件1 做的事情2

    ...(省略)...     if 条件2:

        满足条件2 做的事情1

        满足条件2 做的事情2

        ...(省略)...

循环语句

while循环

while 条件:

       条件满足时,做的事情1

       条件满足时,做的事情2

       条件满足时,做的事情3

       ...(省略)...

实例:求1到100的总和

i = 1

sum = 0

while i <= 100:

    sum = sum + i

    i += 1

print("总和为%d"%sum)    #总和为5050

while循环嵌套

while 条件1:

       条件1满足时,做的事情1

       条件1满足时,做的事情2

       条件1满足时,做的事情3

       ...(省略)...        while 条件2:

           条件2满足时,做的事情1

           条件2满足时,做的事情2

           条件2满足时,做的事情3

           ...(省略)...

实例: 九九乘法表

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

结果:

1*1=1  

1*2=2  2*2=4  

1*3=3  2*3=6  3*3=9  

1*4=4  2*4=8  3*4=12 4*4=16 

1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 

1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 

1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 

1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 

1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

for循环

在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for临时变量in 列表或者字符串等:

    循环满足条件时执行的代码else:

    循环不满足条件时执行的代码

实例:

name ='derek'

foriinname:

   print(i)

break和continue

break的作用:用来结束整个循环continue的作用:用来结束本次循环,紧接着执行下一次的循环

深浅拷贝

要理解深浅拷贝,需先弄懂下面的概念

变量-引用-对象(可变对象,不可变对象)-切片-拷贝(浅拷贝,深拷贝)

变量是一个系统表的元素,拥有指向对象的连接的空间

对象是被分配的一块内存,存储其所代表的值

引用是自动形成的从变量到对象的指针

在Python中不可变对象指:一旦创建就不可修改的对象,包括字符串,元祖,数字

在Python中可变对象是指:可以修改的对象,包括:列表、字典

不可变对象赋值

a的值发生改变,b不会跟着改变

a = 1

b = a

print(a)

print(b)

a  = 3

print(a)

print(b)

结果:

1

1

可变对象赋值

a的值发生改变,b也跟着改变

a = [1,2]

b = a

print(a)

print(b)

a[0] = 3

print(a)

print(b)

结果:

[1, 2]

[1, 2]

[3, 2]

[3, 2]

要想b的值不会改变,就要用到copy模块了

深浅拷贝

浅拷贝:只拷贝顶级的对象,或者说:父级对象

深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象

import copy

#第一种:如果字典只有顶级对象(没有带嵌套)

d = {'name':'derek','age':'22'}

c1 = copy.copy(d)       #浅拷贝

c2 = copy.deepcopy(d)   #深拷贝

print(id(d),id(c1),id(c2))   #5794912 5794984 31939824   三个不同对象

d['age'] = 25

print(d,c1,c2)

#{'name': 'derek', 'age': 25}

# {'name': 'derek', 'age': '22'}

# {'name': 'derek', 'age': '22'}

源对象修改值的时候,深浅拷贝的对象值没有改变

import copy

#第二种,字典中有嵌套

d = {'name':{'first':'zhang','last':'derek'},

    'job':['IT','HR']}

c1 = copy.copy(d)

c2 = copy.deepcopy(d)

print(id(d),id(c1),id(c2))    #31157416 31940256 35946856

d['job'][0] = 'tester'

print(d,c1,c2)

# {'name': {'first': 'zhang', 'last': 'derek'}, 'job': ['tester', 'HR']}

# {'name': {'first': 'zhang', 'last': 'derek'}, 'job': ['tester', 'HR']}

# {'name': {'first': 'zhang', 'last': 'derek'}, 'job': ['IT', 'HR']}

源对象修改值的时候,浅拷贝的值跟着改变,深拷贝的值没变

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,889评论 0 3
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,912评论 17 410
  • 我在b城上大学。 b城的大学生们,也会和其他人一样,课余时间找找兼职,赚点零花钱。我仰仗自己会跳舞,找到了一份兼职...
    Ibravo阅读 215评论 0 0
  • 阅读时间:2016.2.6 阅读页码:第一章 四(5页) 阅读心得:这部分主要描述了东二道街上的扎彩铺里的景象,从...
    迷路的小猪阅读 347评论 0 0