与python的第一次邂逅

python简介

 

一.什么是python

  • python是一种面向对象、直译式的计算机程序语言,所以有了武老师的那句名言:一切皆为对象
  • python的设计哲学是:“优雅”,“明确”,“简单”
  • python那些能做的事:web程序,GUI开发,自动化运维,领域涉及到数据分析,量化投资,系统编程,组件集成。网络服务,图像处理,数值计算和科学计算,自动化测试,爬虫

 

二.和其他语言的对比

  1.python自身的优缺点:

  • python是一种全栈语言,不仅可以做前端,还可以做后端,并且开发效率高,同样的功能比其他语言少得多的代码,而且python拥有丰富的类库,由于其设计哲学,所以python的代码犹如阅读美文样具有易读性

  • 由于python还是一种不成熟的语言,在处理多线程进程表现的不是很完美

  2.其他语言的优缺点:

  • c语言被认为是最基层的语言,和机器直接打交道,代码直接转换成机器码,执行效率高是无可厚非的,而python等语言首先要把代码编译成字节码,然后再编译成机器码,中间就多了那么一步
  • 不过,c语言对内存的拿与放需要频繁的操作,另外提供线程的功能比较少(其实大多数的语言都是基于c语言来做的,而且这些语言的出现就是对c语言的某些方面进行优化,例如java,c#,php,也包括现在讲的python)
  • PHP在前端web网站有着先天性的优势,而在后端,却显得那么憔悴无力,而python做前端和后端都是非常的方便,比如数据分析方向

 

三.python的种类和区别

  • 由于python比较火,各大语言都开发了自己版本的python,比如jpython就是Java开发的,rubypython就是ruby开发的...这些不同版本的python都用的是同一套规则
  • 另外,它们唯一的不同就是,代码编译过程都是用自己语言的编译器,比如,jpython就是用Java的编辑器把代码编译字节码的,有一个pypy版的python,它的代码是直接转换成机器码,执行效果高,主要常见于微线程,不过我们现在用是的cPython

 

编程要求

 

一.语法要求

  • 统一缩进:同一级代码必须保持一致!(建议是每次缩进4个空格)

 

二.变量命名

  • ›命名规则
    ›1.只能包含字母、数字、下划线(python对大小写敏感)
    ›2.不能以数字开头
    ›3.不能是python中定义的关键字

 

python的安装与更新

 

一.安装python

 

  • 下载安装包:https://www.python.org/downloads/
  • 安装默认路径:C:\python3.5
  • 配置环境变量:  【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
  • linux:linux自带,无需安装

 

二.更新python

 

  • windows:卸载重装即可
  • linux:
  • 查看默认Python版本
    python -V

    1、安装gcc,用于编译Python源码
        yum install gcc
    2、下载源码包,https://www.python.org/ftp/python/
    3、解压并进入源码文件
    4、编译安装
        ./configure
        make all
        make install
    5、查看版本
        /usr/local/bin/python2.7 -V
    6、修改默认Python版本
        mv /usr/bin/python /usr/bin/python2.6
        ln -s /usr/local/bin/python2.7 /usr/bin/python
    7、防止yum执行异常,修改yum使用的Python版本
        vi /usr/bin/yum
        将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

 

第一次写python

 

一.执行方式

  •   解释器编写
  •   文件编写,在终端执行文件(python 路径)
  •   指定python解释器的路径 #! /usr/bin/env python

 

二.写下第一句代码

print('hello world')

   print 打印(python2.7可以不加括号,但python3一定要加)

 

三.编码

  •   ascii码,8位制,由于计算机语言发明时只考虑了发明者国家的文字语言
  •   unicode,万国码,兼收了多国的文字语言,至少用两个字节,其中汉字3个字节(弊端:占内存)
  •   gbk和utf-8,对Unicode加工归类,精简
  •   # -*- coding:utf-8 -*-    告诉程序用什么编码(py2.7用中文加上这行就是默认ascii转换,py3.0默认utf-8)

 

四.初识模块和字节码

  •   虽然在python的执行方式中的执行文件扩展名可以.txt或.py,但为了规范,统一.py
  •   单行注释用#(快捷键--ctrl+/),多行注释用三引号
  •   import 文件名(等同吧这个文件名的代码导入到了当前程序)
  •   文件代码执行过程中就伴随字节码文件的生成.pyc,而且执行时优先找.pyc文件,找不到再找源文件,根据源文件生成一个.pyc文件,然后再执行.pyc文件

 

五.用户交互

  •   交互器:py2.7是raw_input,py3.0是input
username = input('please input your username:')
passward = input('please input your passward:')
print('用户名:',username,'密码为:',passward)
  •  输入的结果为:用户名: 拍省先生 密码为: 123

 

六.编写流程梳理

  •   创建xxx.py文件(文本文件改名)--注:不要有中文路径
  •   写代码:1.头两行(指定解释器,指定文件编码) 2.功能代码
  •   执行代码:1.打开中终端  2.python 文件路径python
  •       python编码转换图

#在python2.7中编码转换有一个中转过程
#windows终端能对unicode编码自动转换成默认类型gbk
# temp = '李杰'
#解码,需要指定原来是什么编码
# temp_unicode = temp.decode('utf-8')
# temp_gbk = temp_unicode.encode('gbk')
# print(temp_gbk)

#而在python3.5中不用人为中转了,程序会自动转换,
# 而且在python3移除了python的unicode的类型
temp = '李杰'
temp_gbk = temp.encode('gbk')
print(temp_gbk)   #结果为b'\xc0\xee\xbd\xdc'

 

 

七.初识python数据类型

  •   数字:age = 18
  •   字符串: a1 = ’after‘    只要是英文单引、双引、三引引起来的内容
  •   布尔值: Ture/False(因为python对字母大小写敏感,所以要注意布尔值的首字母要大写)

 

八.python变量与内存

 

name1 = 'wupeiqi' 
print(id(name1)) #结果为11911888
name2 = name1
print(id(name1),id(name2)) #结果为11911888 11911888
name2 = 'alex' print(id(name2)) #结果为11914576

  当name1和name2等于同一个值,显示为指向同一个内存地址,而name2等于另外一个值时,name1和name2指向的内存地址就不同了,从中得出,python是根据值来开辟内存空间的

 

九.基本条件语句

 1.语法格式if 条件:

          内容1
          内容2
       else:
          内容3

          内容4

 2.同级别保持同样的缩进

 3.执行规则:按顺序来,先满足先执行,后满足不执行

n1 = 1
n2 = 2
if n1 < n2:
   print('yes')
else:
   print('no')

 

name = input('username:')
pwd = input('passward:')
if name == 'alex' and pwd == '123':
    print('yes')
else:
    print('no')

  4.if...elif...else结构

    if 条件:
      代码块
    elif 条件:
      代码块
    else:
      代码块

 

inp = input('>>>')
if inp == '1':
    print('111')
elif inp == '2':
    print('222')
elif inp == '3':
    print('333')
else:
    print('....')

 

十.while 循环

  语法结构:

while condition:      #条件不成立是跳出循环
        do someting   #又叫循环体

  如果条件一直成立,那么就会一直循环下去,称为死循环

import time
n1 = True
while n1:        #如果条件一直为真,就发生死循环
    print('1')
    time.sleep(1) #如果不确定是不是死循环,可以用time来延迟消耗内存的时间
    n1 = False    #改变循环条件,让循环退出
print('end')

   好,我们来看个小实例:输出10以内的所有的正整数

    1.第一个可以通过控制循环的条件来输出自己想要的数

n = 1
while n < 11:
    print(n)
    n = n + 1
print('End')

    2.设置标识符来控制条件

import time
kaishi = 1
flag = False             #你知道吗?这就是传说中的标识符
while flag:
    print(kaishi)
    if kaishi == 10:     #标识符起作用前要先判断下
        flag = False     #当标识符再次出现,循环就要退出了
    kaishi = kaishi + 1  #循环计数器,也叫迭代器
    time.sleep(1)        #这是预防死循环的有效缓冲机制
print('End')

  3.好的,那么我们接下来介绍一下,一对双胞胎兄弟:break和continue

    •   这两个小兄弟是干嘛的呢?都有中断循环的天生能力
    • 不过,break力气大了点,一力中断了整个循环,而continue只中断本次循环,进入下次循环

    好,那掌声响起,看看break这个兄弟的精彩的表演吧

kaishi = 1
while True:
    print(kaishi)
    if kaishi == 10:
        break
    kaishi = kaishi + 1

    看到没,等于10时就跳出真个循环了

    好!接下来是continue兄了,等等,由于你只中断本次循环,进入下次循环,所以你更容易进入死循环,所以我请来time兄来给你助阵,可以开始了

import time
while True:
    print('123')
    time.sleep(0.2)
    continue
    print('456')

    你看,continue兄开始自己打转转了,一直输出123,它后面的456都看不到

    不过这这两兄弟搭配干活,简直就是绝配啊,来,我们瞧瞧吧

    现场有人给这两兄弟出了一道难题,就是你把1-10,不过不包7的数字输出

i = 1
while True:
    if i == 7:
        i +=1
        continue
    print(i)
    if i == 10:
        break
    i += 1

    漂亮,它们做到了,真是一对黄金搭档啊

                                                           欢迎大家对我的博客内容提出质疑和提问!谢谢

                                                           笔者:拍省先生   

posted @ 2016-05-15 16:04  财经知识狂魔  阅读(405)  评论(0编辑  收藏  举报