python基础一

Posted xihuxiangri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础一相关的知识,希望对你有一定的参考价值。

一 python介绍

    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  

(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。

 

目前Python主要应用领域:

  • 云计算: 云计算最火的语言, 典型应用OpenStack
  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter

 

2 python是一门解释型 弱类型的编程语言.

2.1 编译型与解释型。

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

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

这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

技术分享图片

 

 技术分享图片

 

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

2.2动态语言和静态语言
通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

2.3强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

通过上面这些介绍,我们可以得出,python是一门动态解释性的强类型定义语言。

 

3 python的种类

 

CPython

当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

小结:

  Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

 

4 单行注释和多行注释

当行注释:# 被注释内容,‘注释内容‘  , “注释内容”

多行注释:‘‘‘被注释内容‘‘‘,或者"""被注释内容"""

 

5 变量

变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。

5.1、声明变量

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3   
4 name = "zhh"

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

变量的作用:昵称,其代指内存里某个地址中保存的内容

技术分享图片

 

变量的命名规范

1 变量由字母,数字,下划线搭配组合而成
2 不可以用数字开头,更不能是全数字
3 不能是python的关键字,这些符号和字母已经被python占用,不可以更改

如:

[‘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‘]
4 不要用中文
5 名字要有意义
6 不要太长
7 区分大小写
推荐大家使用驼峰体或者下划线命名
驼峰体:除首字母外的其他每个单词首字母大写
下划线:每个单词直接用下划线分开

推荐定义方式 驼峰体或下划线

技术分享图片
#驼峰体

AgeOfZhh = 20

NumberOfStudents = 80

#下划线

age_of_students = 56

number_of_students = 80
View Code

2. 变量的数据类型:

         ①.int 整数:+,-,*,/,%(计算余数),//(整除)

         ②.str 字符串:‘,"",‘‘‘,"""括起来的内容(注意:引号使用同一种在一个字符串中.)

                字符串可以进行+,*.

           ‘+‘表示字符串之间的拼接          ‘*‘表示相乘,字符串的内容的倍数.

         ③.bool 布尔值.只有真或者假,True和False.

 

 

 

 

3. 变量的赋值

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 name1 = "zhh"
5 name2 = "zhangqiang"

技术分享图片

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 name1 = "zhh"
5 name2 = name1

技术分享图片

 

定义变量不好的方式举例

  • 变量名为中文、拼音
  • 变量名过长
  • 变量名词不达意

6用户程序交互

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3   
4 # 将用户输入的内容赋值给 name 变量
5 name = input("请输入用户名:")
6   
7 # 打印输入的内容
8 print(name)

 将字符串转化成整数:str => int =>int(str)     例如

#让用户输入a,让用户输入b,计算机计算a+b的结果
a = input("请输入a:")    #input收到的内容为str
b = input("请输入b:")
    #将字符串转变成整数   int(字符串)
c = int(a) + int(b)
print(c)

字符串拼接

字符串可以进行"相加"和"相乘"运算。就是字符串的拼接 和字符串重复

>>> name
zhh
>>> age
22
>>> 
>>> name + age  #相加其实就是简单拼接
zhh22
>>> 
>>> name * 5 #相乘其实就是复制自己多少次,再拼接在一起
zhhzhhzhhzhhzhhzhh

 

7  流程控制语句 if

1.语法一:

       if 条件:                 #引号是将条件和结果分开

            结果1.             #四个空格,或者一个tab键,告诉程序满足这个条件

        结果2

     如果条件是真(True)执行结果1,然后结果2,如果条件假(False)直接结果2

   2.语法二:

       if 条件:

            结果1

        else:

             结果2

         代码3  

print("咣咣咣,谁呀")
gender = input("请问是男是女?")
if gender == :
    print("请找隔壁")
else:
     print("进来吧")

 == 表示判断   = 表示赋值

3.语法三:

        if 条件1:

             结果1

         elif条件2:

              结果2

          ........

          else:

               结果n

例如

month = input("请输入一个月份")
if month == 一月:
    print("吃香蕉")
elif month == 二月:
    print("吃苹果")
elif month == 三月:
    print("吃蛋糕")
elif month ==四月:
    print("吃葡萄")
..........
else:
    print("爱吃嘛吃嘛")

 

4.语句四--嵌套

        if 条件1: 

           结果1

            if 条件2:

                 结果2

             else:

                  结果3

         else:

              结果4

print("咣咣咣, 谁呀? ")
gender = input("请问, 你是男的还是女的?")
if gender == :
    # pass #  pass 过. 表示语法的完整性
    print("男的去隔壁.")
else:   # 不是男的
    age = input("今年贵庚了?")
    if int(age) > 48: # input接收的是字符串. 48是int. 这两个数据类型是不能比较的
        print("大妈, 您找谁?, 可能在隔壁")
    else:
        print("我家的瓜, 特别甜.")

 















以上是关于python基础一的主要内容,如果未能解决你的问题,请参考以下文章

python之基础篇——模块与包

0基础学Python未来5~10年新一代毕业生职场人的新风向,学Python并非程序员的专属。

开发工具 | 即将jupyter的新一代notebook

Flask 编写http接口api及接口自动化测试

python基础--ASCII码

Python基础-----random随机模块(验证码)