zoukankan      html  css  js  c++  java
  • python基础

    Python 简介

    python是具有请打和丰富的库、他被称为胶水语言,能够把用其他语言制作的各种模块、很轻松的连接在一起、常见的一种应用场景是、使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3] 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

    python是一种什么语言呢?

    严格的意思来说、python是一种脚本语言、编程语言有多重多样、但是开有开源和闭源之分、python就是一个开发核心源代码的编程语言、他开发代码的效率非常的高、代码编写后非常容易读、非常适合多人参与项目,他支持面向对象编程方式、同样也可以面向过程编程、非常的灵活,他不单免费、还可以任意的copy分发、python是由荷兰人Guido van Rossum在90年开发出来的、当初只是未了自己娱乐尝试编写一种替代ABC这些编程语言的脚本语言、没想到受到大家的喜爱、一直发展至今、后来引入了对多品台的支持。
    python语言的源代码的底层是用C语言进行编写的、他最强大之处就在于他丰富的第三方库、使得编写程序得速度非常快。python程序得扩展名是(.py),首先会将.py文件中的源代码编译程python的字节码、然后在由python虚拟机来执行这些编译好的字节码、在这一点上与JAVA等程序语言比起来比较相似、通常我们导入或者调用另一个程序、他的.py文件会生成一个.pyc文件、他是编译好的字节码文件、这样的程序运行起来速度更快。

    一、编程与编程语言

    • 为什么编程?

    编程是为了用机器取代手工操作,编程的目的就是为了把人的思想传递给机器,让机器能够像人脑一样自动执行人们手工的操作。

    • 什么是编程语言?

    语言就是计算机能够识别的表达方式,编程语言就是人与计算机的交流介质。

    • 什么是编程?

    编程就是人将自己思想或者行为通过某种编程语言编写下来,他的产出就是一堆字符串文件。字符的执行结果就是编程所执行的结果。

     二、编程语言的分类

    1. 机器语言
    机器语言就是站在机器的角度、机器能够直接识别的语言、也就是二进制数。
    2. 汇编语言
    汇编语言就是站机器的角度、用简单的英文标识取代二进制去编写程序。
    3. 高级语言
    高级语言就是站在人的角度、通过人能够识别的语言去编写程序、然后在让机器去执行。
    4. 编译型语言与解释型语言
    编译型语言就是需要编译、需要将所有的代码编译完成之后再执行。
    解释型语言是一边解释一边执行。
    5. 对比各种语言的优缺点
    机器语言==>执行速度最快==>开发效率最低
    汇编语言==>执行速度最快 ==>开发效率最低
    解释语言==>执行速度慢==>开发效率高、可跨平台

     三、python解释器

    当python程序的安装包下载下来之后、安装到系统后会有一个解释器和Python的自带标准库程序。可以在解释器中编写执行Python源代码,也可以在Linux的终端模拟器中执行其它编辑器编写的代码,Windows系统可以在Dos中切换路径来,直接执行Python程序。

     四、第一个python程序

    python的IDE安装过程很简单、需要你到python的官网(https://www.python.org/downloads/)下载python的程序、然后安装即可。
    我们以python2.7为例、安装完成之后的目录结构如下:
    ![](https://scjianlin.github.io/shier/image/python_ide.png)
    然后我们打开这个IDE、在IDE中输入代码:

    1 print ("Hello,Word! My name is shier!")
    View Code


    当然python的IDE的开发效率有限、后期建议大家使用pycharm来编写代码。

    python脚本

    我们在python的IDE中写代码的时候是不需要加python的标识符、但是我们在写python脚本的时候就需要python的标识符。

    1 #!/usr/bin/python env #指定系统python的解释器 
    2 print ("Hello,Word! My name is shier!")
    View Code
    1 G:>python3 test.py
    2 Hello,word! My name is shier!
    3 G:>
    脚本运行方式

     py脚本的执行过程

    1. 启动py解释器
    2. 将py脚本内容读取到内存
    3. 解释器解释文件内容并执行

    五、变量

    1.什么是变量?
    变量字面意思就是变化的量、量指的是反映某种状态。变量是用来存放一中变化的状态,变是程序执行的直接体现。
    2.如何定义变量?
    变量的定义方式是由:变量名、赋值号、变量值组成。

    name = 'shier'
    sex = 'male'
    age = '17'

    3.变量名的定义规范

    1、变量名只能是数字、字面、数字或者下划线组成。
    2、变量名的第一个字符不能是数字
    3、Python中的关键字不能作为变量名

    4.变量的定义方式

    1、驼峰式
    AgeShier=17
    2、下划线
    age_shier=17
    注意:
    1、变量名称最好不要用中文
    2、变量名称过长
    3、变量名称词不达意
    

    5.常量

    常量不变化的量、常见的常量又数字、定义常量一般都是大写。
    

    每个变量都有id、type、value三要素。

    但是需要注意的是:
    1、id相同、意味着这个变量的type和value必定相同
    2、value相同但是id可能不同
    
    1 >>> x = 'name shier'
    2 >>> y = 'name shier'
    3 >>> id(x)
    4 54359208
    5 >>> id(y)
    6 54359328
    7 >>>
    View Code

    6.变量的回收机制
    当一个python解释器将一个值赋值给某一个变量的时候、此时这个变量名的引用计数会自动加1。如果变量名的引用计数为0、此时该变量就像没娘的孩子会被内存空间会被回收。

    7.变量的解压

    l1 = ['Hello','word','ni','hao']
    a,b,*_ = l1
    print(a,b)
    Hello word

    解压就是使用站位符的形式代替列表中的元素。

    六、数据类型

    数字

    1、int整型
    在python中数字一般用int表示、常用于标识一个人的年龄、等级、身份证号、qq号等等。 
    age = 10
    2、float浮点型
    在python中浮点型一般用于表示小数、常用于标识工资、身高等等。
    salary = 20000.10

    字符串

    在py中加了引号的字符就是字符串类型、py没有字符类型。字符串一般用于标识姓名、国籍等等。
    name = 'shier'
    需要解释一下在py中单引号、双引号、多引号的区别?
    其实在python中单引号和双引号没有太大区别、但是需要注意不同情况下的使用。多引号可以打印换行。
    print("Hello,word! I'm 17 years old!")
    info = '''
    相信别人就是
    相信自己
    '''

    列表

    列表是python中主要的数据类型之一、他可以被修改、可以增长和缩短、也可以嵌套。列表可以完成大多数集合类的数据结构实现、它支持,数字、字符、字符串甚至可以包含列表。列表数据类型是可变的数据类型。在py中列表类型是在[]内用逗号进行分割、可以存放n多个任意类型的值。列表常用于标识人的爱好等等。
    student = ['张三','李四']

    字典

    字典是python中的另一种有序的可变的数据结构、且可以存储任意类型对象。
    字典是一种键值对的数据容器,每个键值(key:value)对冒号(:)分割、每个对之间用逗号(,)分割、整个字典包括在花括号"{}"中。 
    字典中的键必须是唯一的同时是不可变的、值没有限制。
    info = {'name':'shier','age':'17'}

    布尔

    在计算机中True就表示成立、False就标识不成立。
    布尔类型的值有True和False两种。 
    如果bool() #未传入参数则返回false
    如果bool() #传入空字符串也返回false
    如果bool() #传入数字0也返回false
    如果bool() #传入对象只要是空返回都是false
    >>> a = 1
    >>> b = 2
    >>> a < b
    True
    >>> a > b
    False
    >>>

    可变与不可变类型

    1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
    2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 
    3. 在py中除了列表和字典是可变其他都不可变。

    七、格式化输出

    在py中常会用到将输出信息打印成固定的格式。此时就涉及到字符串的格式化输出。

     1 一 占位符
     2 name = 'shier'
     3 age = 17
     4 print('My name is %s ,my age is %s' %(name,age))
     5 My name is shier ,my age is 17
     6 
     7 name = 'shier'
     8 age = 17
     9 print('My name is %s ,my age is %d' %(name,age))
    10 My name is shier ,my age is 17
    11 以上方式是采用的站位符的方式打印的格式化输出、但是需要注意的是%s只能接受str、%d只能接收int、如果%d接收str则会报错。
    12 二 format格式化
    13 name = 'shier'
    14 age = 17
    15 print('My name is {} ,My age is {}'.format(name,age))
    16 ====================
    17 name = 'shier'
    18 age = 17
    19 print('My name is {name} ,My age is {age}'.format(name=name,age=age))
    20 他们俩的执行结果是一样的。
    View Code

    八、基本运算

    一、算术运算
    在python中运算和正常的算术一样。
    >>> a=2
    >>> b=10
    >>> a+b
    12
    >>> a-b
    -8
    >>> a*b
    20
    >>> b**a
    100
    >>> b/a
    5.0
    >>> b%a
    0
    >>> b//a
    5
    >>>
    二、比较运算
    >>> a > b
    False
    >>> a < b
    True
    >>> a !=b
    True
    >>> a == b
    True
    >>>
    三、赋值运算
    >>> a = 1
    >>> b = 2
    >>> a+=b
    >>> a
    3
    >>> a-=b
    >>> a
    1
    >>> a*=b
    >>> a
    2
    >>> a/=b
    >>> a
    1.0
    >>> a%=b
    >>> a
    1.0
    >>> a**=b
    >>> a
    1.0
    >>> a//=b
    >>> a
    0.0
    >>>
    四、逻辑运算
    常见的逻辑运算又and、not、or
    >>> True or False and False
    True
    >>> (True or False) and False
    False
    >>>
    
    身份运算(is)
    >>> a = 1
    >>> b = 2
    >>> a is b
    False
    >>>
    

    九、流程控制

    流程控制就是根据不同的条件的变化而执行不同的代码、例如:登陆网站如果登陆未成功则不能进入到用户中心。

    一、if条件语句
    没有分支判断、只有一种结果、如果不满足条件则退出。
    age_of_shier=17
    if age_of_shier == 17:
    print('帅哥好!')
    #单分支、如果不满足条件、则执行与条件相反的部分。
    age_of_shier=16
    if age_of_shier == 17:
    print('帅哥好!')
    else:
    print('你好!')
    #
    age = 18
    height = 180
    wegiht = 60
    is_pertty = True
    
    if age < 20 and height > 175 and wegiht < 70 and is_pertty == True:
    print('完美男人')
    else:
    print('继续深造吧!')
    #嵌套if就是在if内部在加一层if判断。
    age = 18
    height = 180
    wegiht = 60
    is_pertty = True
    sess = False
    
    if age < 20 and height > 175 and wegiht < 70 and is_pertty == True:
    if sess:
    print('完美男人')
    else:
    print('好好锻炼吧!')
    else:
    print('继续深造吧!')
    #小练习
    info = input('>> ')
    info = int(info)
    if info >= 90:
    print('优秀')
    elif info >= 80:
    print('良好')
    elif info >= 70:
    print('普通')
    else:
    print('很差')
    
    #while 循环
    while 条件: 
    # 循环体
    # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
    # 如果条件为假,那么循环体不执行,循环终止
    
    #改版的猜年龄
    age_of_shier = 18
    while True:
    guess = input('>> ')
    if not guess:continue
    guess = int(guess)
    if guess > age_of_shier:
    print('没那么老!')
    elif guess < age_of_shier:
    print('太年轻了!')
    else:
    print('恭喜你、猜对了!')
    
    #死循环
    while True:
    print('heheheh')
    
    #打印10以内除了7的数字。
    count = 0
    while count<10:
    count += 1
    if count ==7:
    continue
    print(count)
    
    #计算1-2+3-4……99的和
    count = 1
    Sum = 0
    while count<100:
    if count % 2 ==1:
    Sum+=count
    else:
    Sum-=count
    print(count)
    count+=1
    print('====')
    print(Sum)
    
    #嵌套循环
    count=1
    tag =True
    while tag:
    if count > 3:break
    name = input('name: ')
    passwd = input('password: ')
    if name == 'shier' and passwd =='123123':
    print('login sessfull')
    while tag:
    mes = input('>> ')
    if mes == 'q':
    tag = False
    print(mes)
    else:
    print('log error')
    count+=1
    
    #while之break
    number = 0
    while number < 10:
    if number >5:
    break
    print(number)
    number+=1
    break的作用是跳出本层循环。
    
    #countinue
    number = 0
    while number < 10:
    if number == 5:
    continue
    print(number)
    number+=1
    counitnue的作用是跳出本次循环继续执行下一次循环。
  • 相关阅读:
    运维必备:Oracle自备份精简教程(linux及win)
    Ansible11:变量详解【转】
    Ansible10:Playbook的角色与包含【转】
    Nginx下Redmine配置
    centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
    nginx 出现413 Request Entity Too Large问题的解决方法
    linux 安装redmine 遇到的问题
    linux编译ruby1.8.7 出现OPENSSL错误
    Linux下安装项目管理工具Redmine
    (转载)Go语言开发环境配置
  • 原文地址:https://www.cnblogs.com/jianlin/p/8542700.html
Copyright © 2011-2022 走看看