python学习【第二篇】初识python

python的安装

windows

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

  

windows下更新python

卸载重装即可

  

linux、mac

无需安装,原装Python环境

  

linux下更新python

Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
查看默认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

  

HelloWorld程序

在linux下创建helloworld.py,并输入:

print("hello world")

然后执行命令:python hello.py ,输出

localhost:~ jieli$ vim helloworld.py
localhost:~ jieli$ python helloworld.pyhello world

  

指定解释器与编码

如果想要类似于执行shell脚本一样执行python脚本,例: ./helloworld.py ,那么就需要在 helloworld.py 文件的头部指定解释器,如下:

#!/usr/bin/env python
# _*_coding:utf-8_*_

print("hello world")

如此一来,执行: ./hello.py 即可.

ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

编码

python2的默认编码为ASCII,python3的编码为unicode,所以使用python2时要指定编码格式

# _*_coding:utf-8_*_

  

python中的注释

单行注视:# 被注释内容

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

  

用户输入

python3中的用户输入为input()函数

  • Python中可以使用input函数来接收键盘的输入
  • 用户输入的任何东西,都是一个字符串
# 1. 输入苹果单价
price_str = input("请输入苹果价格:")

# 2. 要求苹果重量
weight_str = input("请输入苹果重量:")

# 3. 计算金额
# 1> 将苹果单价转换成小数
price = float(price_str)

# 2> 将苹果重量转换成小数
weight = float(weight_str)

# 3> 计算付款金额
total_price = price * weight

print(total_price)

模块初识

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  • python内部的模块
  • 业内开源的模块
  • 程序员自己开发的模块

Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

print sys.argv

  

.pyc文件

1. Python是一门解释型语言?

我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!

为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清。

 

2. 解释型语言和编译型语言

计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分成两类,第一种是编译,第二种是解释。

编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。最典型的例子就是C语言。

解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby。

通过以上的例子,我们可以来总结一下解释型语言和编译型语言的优缺点,因为编译型语言在程序运行之前就已经对程序做出了“翻译”,所以在运行时就少掉了“翻译”的过程,所以效率比较高。但是我们也不能一概而论,一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上超过编译型语言。

此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。

用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

3. Python到底是什么

其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。

当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。

熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:

javac hello.java

java hello

只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。

4. 简述Python的运行过程

在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

运算符

1、算术运算

python学习【第二篇】初识python

2、比较运算

python学习【第二篇】初识python

3、赋值运算

python学习【第二篇】初识python

4、逻辑运算

python学习【第二篇】初识python

5、成员运算

python学习【第二篇】初识python

流程控制

if语句

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

定义格式

num = 5
if num == 3:            # 判断num的值
    '
elif num == 2:
    '
elif num == 1:
    '
elif num < 0:           # 值小于零时输出
    print 'error'
else:
    print 'roadman'     # 条件均不成立时输出

while循环

while 判断条件:
    执行语句……

定义格式

num = 0

while num < 10:
    print(num + 1)
    num += 1

打印1-10

for循环

for iterating_var in sequence:
   statements(s)

for语法格式

for num in range(10):
    print(num + 1)

打印1-10

for i in range(10):
    for j in range(10):
        if i > j:
            print("*", end=" ")

    print()

结果:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * * 

循环嵌套

上一篇:一文详解Webshell


下一篇:Google jsAPI托管你的js库