Python初识(发展史&优缺点&ipython)

此博客的脑图链接:http://naotu.baidu.com/file/67ebf90eb5073fd8b9fbed8251b22956?token=f4c5d28e2c6e085e
下面第一部分为在脑图下更加详细的介绍:

一、脑图细化分析:

python的发展史

  • 1989年,Guido(龟叔),为ABC语言写插件,Monty Python喜剧团;
  • 1990年,发布python第一个版本;
  • 2001年,2.x; (python2.7 —-> python2.8<不会存在>);
  • 2013年,python3.0

编程语言:

C,Java,C++, C#, shell, ruby, php, JavaScript, Matlab等等

有以下两种比较流行的分类:
1>

- 面向对象语言
  ##面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。

- 面向过程语言
  ##面向过程的语言也称为结构化程序设计语言,是高级语言的一种。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。其概念最早由E.W.Dijikstra在1965年提出,是软件发展的一个重要里程碑。它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造。

- 面向函数编程
  ##一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数、定义函数和函数型.这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;可以把函数作为参数,其结果也可为函数,这种定义的函数称为高阶函数.程序就是函数,程序作用在结构型数据上,产生结构型结果,从根本上改变了冯·诺伊曼式语言的“逐词”工作方式.

2>

- 编译型语言
 ##比如说在Windows用C写了一个QQ软件,并不能在Linux上执行,也不能在IOS上运行;

- 解释型语言
 ##可以跨平台,你用python写一个APP,只需要写一份,在所有的平台上可以运行;

python的优缺点

优点:

-简单:代码量相比较c会少很多,有很多的库
-优雅:必须按照格式进行缩进
-明确:仅有唯一最优解

缺点:

  • 速度慢
爬虫:
    http://www.baidu.com/xxx.html
    wget xxx.html
    分析

python    C
1h+10ms   1h+1ms                
##10ms和1ms相对于1h来说就显的微乎其微理,故而,Python本身的缺点也显的没有那么重要了

ipython的安装

第一个python脚本

这里写图片描述

解释器问题

# 可移植性的对比,如果你的代码移植到的机器,python并未安装在/usr/bin/python这里,就使用第二种;
#!/usr/bin/python
#!/usr/bin/env python

中文问题

#coding:utf-8          
#coding=utf-8

#encoding:utf-8
#encoding=utf-8

#encoding:-*- utf-8 -*-    ##此种方法仅仅只是看起来比较好看

编码格式:
ASCII:美国人发明了计算机,1个字节(8位)去存储一个英文字符,2^8=256;
Unicode:2个字节(16位)去存储一个字符,2^16=65536;
GB2312:
utf-8:在编程过程中,英文多,中文少。如果是英文字符,就用一个字节去存储;如果是中文用3个字节去存储;

python的IDE工具

  • sublime
  • eclipse
  • pycharm

快捷键和技巧

  • ctrl+alt+s:设置
  • alt+insert:新建(文件,目录,包)
  • Delete:删除(文件,目录,包)
  • ctrl + /: 快速注释(或取消)一行或多行
  • ctrl+d: 快速复制一行
  • shift+delete:快速删除一行

二、问题思考:

  1. 你理解的python是什么?为什么会使用python?
    交互式必须掌握的一门脚本语言,Python的语法简单,速度相比较而言还是可以接受的。
  2. 解释python第一行怎么写?写的内容是做什么的?怎么写可移植性强?为什么?
    #!/usr/bin/python ##文件的解释器
    #!/usr/bin/env python ##此种方法的解释器,会自动的找python文件,前一种方法使用的是yum安装的,其路径是标准唯一的,而如果使用源码安装,路径会有所差异
  3. 解释编码格式ASCII,Unicode和utf-8的不同点?
    ASCII:1个字节(8位)存储一个英文字符,2^8=256;
    Unicode:2个字节(16位)去存储一个字符,2^16=65536;
    utf-8:在编程过程中,英文多,中文少。如果是英文字符,就用一个字节去存储;如果是中文用3个字节去存储;
  4. raw_input和input的区别?
    raw_input:字符串型
    input:数值型
  5. 三个双引号号(或者三个单引号的)可以用来做什么?
    a、批量注释
    b、标准输出时,可以使用此方法
  6. python格式化输出(包含变量)的方法有哪些?并举例列出?

     1)
     A=1                           ##单个变量赋值
     print "A:",A                  ##输出打印
    
     2)
      A=1                          ##多个变量赋值
      B=2
    
    ##使用%d进行占位,从而输出打印,此方法的一个弊端就是:每一个变量值的类型都必须要做到心中有数且不能输错
    
    
     3)
      A=1
      B=2
      print "A:{} B:{}".format(A,B)    
      ##弥补理2)的不足,但必须严格按照顺序输入
    
      4print "A:{A} B:{B}".format(A=1,B=2)   
      ##弥补了3)的不足,顺序不重要,但是,大括号中的参数要对应起来

三、编程练习:

1. 用户登陆v1:
    1). 假设系统中的用户名"root",密码为"westos";
    2). 如果用户输入用户名和密码均正确显示"login ok"
        如果用户名错误,显示"user is not exist"
        如果密码错误,显示"password is no ok"
    3). 只有三次登陆机会,超过三次,显示"count is bigger than 3"

[问题分析]
关键在于"三次登陆机会"表示的是,第四次登录的成功与否已经不重要,必然退出程序

[Python]
#!/usr/bin/env python
#coding:utf-8
"""
file:login.py
date:8/24/179:56 PM
author:hx
desc:login
"""
username="root"
password="westos"

for i in range(1,5):
    Name = raw_input("Please input username:")
    Passwd = raw_input("Please input password:")
    if i==4:
        print "count is bigger than 3"
        exit(0)
    else:
        if Name!=username or Passwd!= password:
            if Name!=username:
                print "user is not exist"
            if Passwd!= password:
                print "password is no ok"
        else:
            print "login ok"
            exit(0)

这里写图片描述

2. 编写乘法表
[问题分析]
关键在于双重循环的使用,以及九九乘法表每一行的输出,其实是大数在前,小数在后,注意细节问题

[Python]
#!/usr/bin/env python
#coding:utf-8
"""
file:chengfabiao.py
date:8/24/179:43 PM
author:hx
desc:chengfabiao
"""
for i in range(1,10):
    for j in range(1,10):
        print i,"*",j,"=",i*j,\t
        if i==j:
            break
    print "\n"

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值