本节内容

  1、python介绍

  2、发展史

  3、python2和python3

  4、安装

  5、简单程序,hello world程序

  6、变量

  7、用户输入

  8、模块初识

  9、.pyc是什么?

  10、数据类型初识

  11、数据运算

  12、表达式if...else语句

  13、表达式for循环

  14、break and continue

  15、表达式while 循环

一、python介绍

  python 的创始人为吉多.范罗苏姆。吉多.范罗苏姆为打发1989年年圣诞节而开发的一个小的脚本解释程序。是ABC语言的继承。

  python 目前世界使用率排行为第五。python崇尚优美、清晰、简单,是一个优秀并且广泛的语言。而且使用率也逐年上升。python目前可以应用于众多的领域,如:数据分析、组件构成、网络服务、图像处理、数值计算和科学计算等众多领域。目前几乎所有大中型的互联网公司都在使用python。如:YouTube、Dropbox、Quora、知乎、Google、Yahoo、百度、腾讯、汽车之家、美团等。

  主要应用领域:

  云计算:云计算中最火的语言,典型应用Openstack。

  WEB开发:python拥有众多优秀的WEB框架,众多的大型网站都是用python开发,YouTube、豆瓣等,典型的WEB框架有Diango

  科学运算、人工智能:典型的NumPYthon、SciPY等。

  系统运维:运维人员必备语言。

  金融:量化交易,金融分析、在金融工程领域,Python不但在用,而且用的最多,而且重要性逐年提高。原因:作为动态语言,python语言结果清晰简单,库丰富,成熟稳定。科学计算和统计分析都很牛逼,科学计算和统计分析也很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测。

  图形GUI:

1、python是一门什么样子的语言?

  编程语言从编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言这几个方面分析。

1.1 编译器和解释器

  编译器:把源程序每条语句都编译成机器语言,并且保存成二进制文件。这样计算机可以直接使用机器语言来运行程序。速度很快。

  解释器:只有在执行程序的时候,才会一条一条的翻译成机器语言来给计算机执行。速度不软编译后的程序快。这是因为计算机不能直接认识并且执行我们写的语句。它只能识别机器语言(二进制)。

1.2 低级语言与高级语言

  低级语言:最初的计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需翻译。

  高级语言:从人类的逻辑思维角度出发的计算机语言,抽象成都大大提高。需要编译成特定机器上的代码后才能执行。

1.3 编译和解释

  编译:编译是将源程序翻译成可执行的木编代码,翻译与执行时分开的。

  解释:是对源程序解释和翻译一次性完成。不生产可存储的目标代码。

  区别:对解释执行而言,程序运行时控制权在解释器而不再用户程序。对编译执行而言,程序运行时的控制权在用户程序。

  解释器具有良好的可移植性,和动态性,比如在解释执行时可以动态改变变量的类型、对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不同的系统上,则程序不用改动就可以在移植了解释器的系统上运行。同时解释器也有很大的缺点,比如执行效率低,占用空间大,因为不仅要给用户程序分配空间,解释器本身也占用了宝贵的系统资源。

  编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

  而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

1.4 python优缺点

  优点:

  1、python定位是优雅、明确、简单,所以python看上去容易学,简单易懂。

  2、开发效率高。python有非常强大的第三方库,基本上可以实现你想实现的任何功能,python官方库里面有相应的模块进行支持,直接下载调用后,在基础库的基础上在进行开发,大大降低了开发周期,避免重复工作。

  3、高级语言,当用python的时候,不需要考虑底层的细节。

  4、可移植性,

  5、可扩展性,如果你需要你的一段关键代码运行的更快或者希望某些算法不被公开,你可以把部分程序用c或者c++代替。

  6、可嵌入性,把python嵌入多种语言当中。

  缺点:

  1、速度慢。

  2、代码不能加密

  3、县城不能利用多CPU问题。

1.5 python解释器

  python代码是.py结尾,运行时,python解释器去执行.py文件。运行代码时候,要用pyton去执行.py文件。

  多种python解释器。

  1、Cpython  c语言开发,使用最为广泛

  2、IPpython  基于Cpython开发。

  3、pypy    速度快,采用JIT技术。对python代码进行动态编译。python未来发展的方向。

  4、Jython    java平台的python解释器

  5、IronPython  运行在。net上面的解释器

1.6 为什么是Python而不是其他语言?

C 和 Python、Java、C#等

C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

Python 和 C  Python这门语言是由C开发而来

  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
  对于速度:Python的运行速度相较与C,绝逼是慢了

Python 和 Java、C#等

  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
  对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

二、发展史

  1、1989年诞生,目前最新版本3.5,老版本2.7兼容2.0版本和3.5版本,2.0版本2020年后不再维护。

三、python2和python3

  选python。兼容2.7

  2和3的区别

  有很多的优化,如少了字符编码的烦恼,库更改了名字等。

四、python的安装

  Windows安装

1、下载安装包

    https://www.python.org/downloads/
2、安装
    默认安装路径:C:\python27
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python27,切记前面有分号
  2、linux,mac安装
  无需安装,原装Python环境

  
  ps:如果自带2.6,请更新至2.7,同时需要安装3.5
五、hello world

>>> print ("hello world")
hello world
>>>

指定解释器:执行上hello world.py的时候,明确指出hello.py脚本由python解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,则需要在hello.py头部指定解释器,如下。

!/usr/bin/env python

print "hello,world"

六、变量、字符编码

声明变量

#_*_coding:utf-8_*_

name = "Alex Li"

上述代码声明了一个变量,变量名为: name,变量name的值为:"Alex Li"

变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

变量的赋值

name = "Alex Li

name2 = name

print(name,name2)
name = "Jack"
print("What is the value of name2 now?")

七、字符编码

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

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

ASCII无法识别中文,在python中告诉解释器,使用什么编码来执行源代码。即:

#!/usr/bin/env python

# -*- coding: utf-8 -*-
 

注释:

当行注视:# 被注释内容

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

八、用户输入

#!/usr/bin/env python

#_*_coding:utf-8_*_
 
 
#name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name )
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
 
#!/usr/bin/env python

# -*- coding: utf-8 -*-
  
import getpass
  
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
  
# 打印输入的内容
print(pwd)
 

九、模块初识

Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。

sys

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
 
print(sys.argv)
 
 
#输出
$ python test.py helo world
['test.py''helo''world']  #把执行脚本时传递的参数获取到了

  

os

1
2
3
4
5
6
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import os
 
os.system("df -h"#调用系统命令

完全结合一下  

1
2
3
import os,sys
 
os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行

自己写个模块

python tab补全模块

自己写个模块

python tab补全模块

  1. 1 import sys
  2. 2 import readline
  3. 3 import rlcompleter
  4. 4
  5. 5 if sys.platform == 'darwin' and sys.version_info[0] == 2:
  6. 6 readline.parse_and_bind("bind ^I rl_complete")
  7. 7 else:
  8. 8 readline.parse_and_bind("tab: complete") # linux and python3 on mac
  1. 1 #!/usr/bin/env python
  2. 2 # python startup file
  3. 3 import sys
  4. 4 import readline
  5. 5 import rlcompleter
  6. 6 import atexit
  7. 7 import os
  8. 8 # tab completion
  9. 9 readline.parse_and_bind('tab: complete')
  10. 10 # history file
  11. 11 histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
  12. 12 try:
  13. 13 readline.read_history_file(histfile)
  14. 14 except IOError:
  15. 15 pass
  16. 16 atexit.register(readline.write_history_file, histfile)
  17. 17 del os, histfile, readline, rlcompleter

写完保存后就可以使用了

1
2
3
4
5
localhost:~ jieli$ python
Python 2.7.10 (default, Oct 23 201518:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help""copyright""credits" or "license" for more information.
>>> import tab

你会发现,上面自己写的tab.py模块只能在当前目录下导入,如果想在系统的何何一个地方都使用怎么办呢? 此时你就要把这个tab.py放到python全局环境变量目录里啦,基本一般都放在一个叫 Python/2.7/site-packages 目录下,这个目录在不同的OS里放的位置不一样,用 print(sys.path) 可以查看python环境变量列表。

十、.pyc是个什么鬼?

Python是一门解释性语言,pyc文件其实是PyCodeObject的一种持久化保存方式。

十一、数据类型初识

1、数字

数字分为int,long,float

2、布尔值

真或者假

1或者0

3、字符串

“hello world”

字符串是 %s;整数 %d;浮点数%f

字符串常用功能:
  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片
4、列表
创建列表:

1
2
3
name_list = ['alex''seven''eric']
name_list = list(['alex''seven''eric'])

基本操作:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含
5、元组(不可变列表)
创建元组:
1
2
3
ages = (1122334455)
ages = tuple((1122334455))
 
6、字典(无序)
创建字典:
1
2
3
person = {"name""mr.wu"'age'18}
person = dict({"name""mr.wu"'age'18})

常用操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

十二、数据运算

算数运算:

比较运算:

赋值运算:

逻辑运算:

成员运算:

身份运算:

位运算:

运算符优先级:

十三、表达式if ... else

场景一、用户登陆验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 提示输入用户名和密码
  
# 验证用户名和密码
#     如果错误,则输出用户名或密码错误
#     如果成功,则输出 欢迎,XXX!
 
 
#!/usr/bin/env python
# -*- coding: encoding -*-
  
import getpass
  
  
name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
  
if name == "alex" and pwd == "cmd":
    print("欢迎,alex!")
else:
    print("用户名和密码错误")

场景二、猜年龄游戏

在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
 
my_age = 28
 
user_input = int(input("input your guess num:"))
 
if user_input == my_age:
    print("Congratulations, you got it !")
elif user_input < my_age:
    print("Oops,think bigger!")
else:
    print("think smaller!")
外层变量,可以被内层代码使用
内层变量,不应被外层代码使用

十四、表达式for loop

最简单的循环10次

1
2
3
4
5
6
#_*_coding:utf-8_*_
__author__ = 'Alex Li'
 
 
for in range(10):
    print("loop:", i )

输出:

1
2
3
4
5
6
7
8
9
10
loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9

需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

1
2
3
4
for in range(10):
    if i<5:
        continue #不往下走了,直接进入下一次loop
    print("loop:", i )

需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

1
2
3
4
for in range(10):
    if i>5:
        break #不往下走了,直接跳出整个loop
    print("loop:", i )

十五、while loop

有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。

海枯石烂代码

1
2
3
4
5
count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
    count +=1
    

其实除了时间,没有什么是永恒的,死loop还是少写为好 

上面的代码循环100次就退出吧

1
2
3
4
5
6
7
8
count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
    count +=1
    if count == 100:
        print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
        break
        

回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
 
my_age = 28
 
count = 0
while count < 3:
    user_input = int(input("input your guess num:"))
 
    if user_input == my_age:
        print("Congratulations, you got it !")
        break
    elif user_input < my_age:
        print("Oops,think bigger!")
    else:
        print("think smaller!")
    count += 1 #每次loop 计数器+1
else:
    print("猜这么多次都不对,你个笨蛋.")

  

python 基础篇第一篇的更多相关文章

  1. Python基础【第一篇】

     一.Python简介 Python的创始人(Guido von Rossum 荷兰人),Guido希望有一种语言既能像C一样方便地调用操作系统的功能接口,也能像shell脚本一样,轻松地实现编程,A ...

  2. python基础知识第一篇(认识Python)

    开发语言: 高级语言:python java php c++ 生成的字节码 字节码转换为机器码 计算机识别运行 低级语言:C 汇编 生成的机器码 PHP语言:适用于网页,局限性 Python,Java ...

  3. Python 基础【第一篇】环境部署

    一.Windows基础环境配置部署 1.1.下载python安装程序 下载地址:https://www.python.org/ftp/python/3.4.1/python-3.4.1.msi 1.2 ...

  4. Python开发【第一篇】:目录

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...

  5. Python开发【第一篇】:目录

    本系列博文包含Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习Python编程的朋友们提供一点帮助! .Python开发[第一篇]:目录 .Python开发[第二篇]:初始P ...

  6. 【MM系列】SAP MM模块-基础配置第一篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-基础配置第一篇   ...

  7. JVM学习篇-第一篇

    JVM学习篇-第一篇 JDK( Java Development Kit): ​ Java程序设计语言.Java虚拟机.Java类库三部分统称为JDK,JDK是用于支持Java程序开发的最小环境** ...

  8. Python之路(第一篇):Python简介和基础

    一.开发简介 1.开发:      开发语言:               高级语言:python.JAVA.PHP.C#..ruby.Go-->字节码                低级语言: ...

  9. Android基础学习第一篇—Project目录结构

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  10. python基础-第六篇-6.2模块

    python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...

随机推荐

  1. c#中运行时编译时 多态

    c#中运行时编译时 多态   public class aa { } public class bb:aa { } public class cc { public static void Main( ...

  2. C# 线程的定义和使用

    C# 线程的定义和使用 一.C# Thread类的基本用法 通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法.可以通过Thread类的的构造方法传 ...

  3. ubuntu下使用golang、qml与ubuntu sdk开发桌面应用

    ubuntu下使用golang.qml与ubuntu sdk开发桌面应用 (简单示例) 找了很长时间go的gui库,试了gtk,准备试qt的时候发现了这个qml库,试了下很好用. 准备工作 1.Go ...

  4. (翻译) Android ListView 性能优化指南

    本文翻译了Lucas Rocha的Performance Tips for Android’s ListView.这是一篇关于介绍如何提升ListView性能的文章,非常的优秀.使得我拜读之后,忍不住 ...

  5. Memcache Slab Eviction 功能测试

    Memcache Slab Eviction 功能测试 1 功能简述 1.1 Automove功能背景 由于memcache的内存分配是基于slab的,每个1M的page内只能存放对应slab大小范围 ...

  6. Gink掉过的坑(一):将CCTableView导入到lua中

    环境: 系统:win7 64位 cocos2dx:cocos2d-2.1rc0-x-2.1.3 Visual Studio: 2012 由于项目是用lua写的,需要将cocos2dx中的方法导入到lu ...

  7. jQuery判断元素是否显示与隐藏

    jQuery判断一个元素是显示还是隐藏,jQuery使用is()方法来判断一个元素是否显示,反之则为隐藏 核心代码 if($("#username").is(":hidd ...

  8. 实现Avl平衡树

    实现Avl平衡树   一.介绍 AVL树是一种自平衡的二叉搜索树,它由Adelson-Velskii和 Landis于1962年发表在论文<An algorithm for the organi ...

  9. jQuery Mobile (中)

    jQuery Mobile (中) 前言 昨天我们一起学习了一部分jquery mobile的知识,今天我们继续. 这些是些很基础的东西,有朋友觉得这个没有其它的好,但是学习下不吃亏嘛,我反正也不会一 ...

  10. 寻找两个已序数组中的第k大元素

    寻找两个已序数组中的第k大元素 1.问题描述 给定两个数组与,其大小分别为.,假定它们都是已按照增序排序的数组,我们用尽可能快的方法去求两个数组合并后第大的元素,其中,.例如,对于数组,.我们记第大的 ...