zoukankan      html  css  js  c++  java
  • python初识

    python初识


    1 python介绍

    创始人:Guido van Rossum(龟叔)(仁慈的独裁者)

    Java的优势:进入市场早,比python更加稳健(支持亿级用户,支持千万级用户),

    主要应用领域:

    • 云计算:
      • openstack (OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.)
    • WEB开发:Django
    • 科学运算、人工智能:
      • Numpy
        • NumPy is the fundamental package for scientific computing with Python
        • useful linear algebra, Fourier transform, and random number capabilities
      • SciPy
        • SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.
        • 用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题
        • 可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题
      • Matplotlib
        • Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
    • 系统运维
    • 金融
    • 图形GUI:
      • PyQT
      • WxPython
      • TkInter

    1.1 python是一门什么样的语言: 解释型 强类型

    • 编译型与解释型
      • 编译器把源程序的每一条语句都编译成机器语言,并保存成二进制文件。运行时可以直接以机器语言运行,速度很快。
      • 执行程序时,一条一条解释成机器语言给计算机执行,运行速度不如编译后的程序运行的快,但在cache的帮助下,可以提高速度。
        • _pycache
    • 静态语言和动态语言
      • 动态类型语言:数据类型的检查是在运行时做的。用动态类型语言编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部记录数据类型。
      • 静态类型语言:数据类型的检查是在运行前(编译阶段)做的。
    • 强类型定义语言与弱类型定义语言(初步认识,未来明确
      • 强类型定义语言:"1" + 2 报错 ;必须用强制转换
      • 弱类型定义语言:"1" + 2 得到新的结果
    • 编译型VS解释型
      • 编译型
        • 优点:编译只做一次,运行时不需要编译,执行效率高,脱离语言环境独立运行。
        • 缺点:编译之后如果需要修改则需将整个模块重新编译,开发效率低。不支持跨平台
      • 解释型
        • 优点:兼容性良好(提前安装解释器),任何环境都可以运行。开发效率高,修改代码的时候直接修改就可以。
        • 缺点:每次运行都需要解释一遍,性能上不如解释型语言。

    1.2 python的优缺点

    • 优点:

      1. 优雅、明确、简单。
      2. 开发效率高,避免重复造轮子
      3. 高级语言(无需考虑内存管理等细节)
      4. 可移植性
      5. 可扩展性
      6. 可嵌入性
    • 缺点:

      1. 速度慢
      2. 代码不能加密
      3. 线程不能利用多CPU

    1.3 python解释器

    常用的解释器:

    • Cpython:官方推荐,可以转成C语言能识别的字节码
    • Jpython:可以转成Java语言能识别的字节码
    • Ironpython:可以转成.Net语言能识别的字节码
    • pypy:动态编译,一次性全部转化(执行效率与开发效率都高)(未来的趋势)

    2 python发展史

    • 1989年圣诞节假期,Guido开始写Python语言的编译器
    • python2.4 Django诞生
    • 2008年 python2.6 3.0

    3 第一个python程序

    print("hello word")
    

    4 变量(重点)

    • why::简洁,将运算的中间结果暂时存到内存,以便后续程序调用
    • what:代指一些内容或表示一种指代关系变量可以指向任何数据类型
    • how:
      • 驼峰: AgeOfOldboy = 73
      • 下划线: age_of_oldboy
    • where:代指复杂过长的数据
    • 变量扩展: 在内存上的细节(便利贴)
    • 变量只能指向数据,不能指向数据
    • 变量在内存中是唯一命名的
    • 变量与数据类型的区分

    5 常量

    • why:生活中存在一直不变的
    • what:一直不变的量,python中没有真正不变的常量,为了迎合,全部大写的变量被称为常量
    • how:变量名全用大写字母组成来提醒。
    • where:BIRTH_OF_CHINA = 1949

    6 注释

    • why:解释说明,便于理解
    • what:注释
    • how:
      • 单行注释 #
      • 多行注释''' abc''' 或"""abc """
    • where:函数,类,文件都需要注释;难以理解的代码后面。

    7 基础数据类型的初识(重点

    why:机器是很傻的,分辨不出,所以人为的划分,我们告诉计算机,他能做它相应的一些操作。

    what:

    • 对数据进行明确的归类划分,便于执行特定的操作。

    • 100 、 102 就是数字(int) +-*/

      • 32位机器:-231~231-1
      • 64位机器:-263~263-1
    • [1,2,3,'中国'] (list)

    • 'china' 记录信息描述信息(str)

      str(字符型):'abc' "abc" '''abc''' """abc"""

      • 区别是:

        1. '''abc'''用于换行 (诗)

          msg=''' 今天
          明天
           后天
          '''
          
        2. 单双引号配合使用

        content="I'm taibai, 18 years old."

        1. 字符串可以拼接(相加) 也可以用字符串与数字相乘
    • bool(布尔型):True False 判断真假

      • 判断变量指向的是什么数据类型type()
      if type(a) is list :
      
    • 变量与数据类型的区别:

    - datatype: a data type or simply type is an attribute of data which tells the compiler or interpreter how the programmer intends to use the data. 
    

    8 用户交互

    • 内容 = input(提示信息)str数据类型
    • 练习:用户输入姓名,年龄,性别,并打印'我叫:,今年:,性别:。
    name = input('请输入姓名:')
    sex = input('请输入性别:')
    age = input('请输入年龄:')
    msg = '我叫:'+ name +',性别:' + sex + ',年龄:' + age + '。'
    print(msg)
    

    9 流程控制if语句

    1. if:
    if 3>2:
       print(666)
    print(222)
    
    1. if else:
    age = int(input("请输入年龄"))
    
    if age > 18 :
    	print("恭喜你成年了!")
    else:
    	print("小屁孩")
    
    1. if elif elif...else (多选一,从上到下运行,一旦满足就退出):
    score = int(input("请输入分数"))
    if score >= 80 and score <= 100:
    	print("优秀!")
    elif score >= 70 :	
    	print("良好")
    elif score >= 60 :	
    	print("及格")	
    elif score >= 0 :
    	print("不及格")
    else:
    	print('error')
    
    1. if if else else:(尽量不要超过3层嵌套)
    username = input("请输入用户名:")
    password = input("请输入密码:")
    your_code = input("请输入验证码:")
    code = 'abc'
    name = 'naqin'
    pw = '123'
    if code == your_code:
    	if name == username and password == pw:
    	print("成功!")
    	else:
    	print("账号或密码错误!")
    else:
    print("验证码错误!")
    
    

    10 while循环

    • 基本循环
    while 条件:
    	循环体    
    
    
    • 终止循环
    1. 改变条件: **标志位** flag = True
    
    
    打印1~100
    flag = True
    num = 1
    while flag :
        if(num == 100):
            flag = False
        print(num)
        num +=1
    
    
    • break
    打印1~100之间的偶数
    num = 1
    while num :
        if(num == 101):
            break
        elif num % 2 ==0:
            print(num)
        num +=1
    
    
    • 调用系统命令:quit(),exit()
    • continue(终止本次循环) (出错了)
    使用while循环打印1 2 3 4 5 6 8 9 10
    
    #错误代码: 错因: 循环驱动放在了条件判断后面,在一次中止后,循环驱动无法改变,所以后面循环部分都无法执行。
    num = 1
    while num <= 10:
        if num == 7 :
            continue 
        print(num)
        num += 1
        
    #正确代码:
    num = 0
    while num < 10:
        num += 1
        if num == 7:
            continue
        print(num)
          	
    	
    
    
    • while...else...
      • 当while循环正常执行完,中间没有被break中止的话,就会执行else后面的语句。
  • 相关阅读:
    bean的singleton(没有看到生命周期范围??)
    ApplicationContext中getBean详解
    mybatis基础之二
    mybatis基础之一
    JDOM读取xml
    SSH整合最简单的一个例子
    基础学习问题
    2015年2.9--2.15号第一周计划
    freertos的钩子函数
    IAR环境搭建注意点
  • 原文地址:https://www.cnblogs.com/chennaqin/p/10799730.html
Copyright © 2011-2022 走看看