zoukankan      html  css  js  c++  java
  • Python初识--基础

    碎碎念
    1. 最初想写一些机器学习算法的实现类的文章,但发现自己工作经验不足,即使写出来,也只是一些应用场景十分狭隘的小实验;
    2. 了解到身边有些朋友和同学也想了解学习一下脚本语言Python(毕竟是后起之秀),纸质、电子资源大家都有,可是总感觉学起来么劲,就是没有小伙伴一起学嘛;
    3. 综上,我打算写一个系列的Python教程,侧重点是为机器学习和深度学习打下基础。
    4. 这或许在别人看起来可能是微不足道的工作,但对我而言,要全面、系统且有侧重点地整理Python知识,这不仅是对我过去Python学习的检验,也是对我现在的时间管理的一个挑战。
    5. 我会坚持下去!欢迎大家留言骚扰,不亦乐乎,能力所限,欢迎指教。
    前言
    • 实验环境: Python 3.6;
    • 本文完整示例:下载示例
    基本知识

    Python的特点###

    • 面向对象的解释性语言;
    • 简单易学;
    • 丰富的库;
    • 强制使用制表符作为语句缩进(white space)。

    Python的优缺点###

    • 优点
      • 简单、易学;
      • 免费、开源;
      • 可扩展性、可嵌入性;
      • 丰富的库。
    • 缺点
      • 运行速度较慢;
      • 中文资料匮乏;
      • 代码不能加密。

    Anaconda安装与配置

    十分推荐Anaconda,它是一个集成开发环境,集成了众多常用Python库,免去了开发环境配置的繁琐,让我们更专心地去学习真正的技术。大赞

    • 下载地址:
      国内清华镜像,速度很快滴。
      注意选择好自己电脑对应的版本号。
      安装方法:一路next。
    • jupyter notebook相关配置

    Pycharm的安装与配置###

    Python注释语法###

    • 注释的作用
      • 增加程序的可读性;
      • 作为调试时使用;
      • 提高团队的合作效率。
    • 注释的分类
      • 单行注释;
        以符号#开头,表示当前行其后的内容为注释。
      • 多行注释;
        • 采用三对单引号表示'''多行注释'''
    Python中的变量

    Python中的变量###

    • 什么是变量?
      用来存储数据的量。
    • 什么是标识符?
      标识符是用户自定义的,如变量名、函数名等。
    • 标识符的命名规则
      1. 只能包含字母、数字和下划线;
      2. 只能以字母或下划线开头,开头不能使用数字;
      3. 不能包含空格,可使用下划线分割单词;
      4. 不能使用Python中的关键字作为变量名;
      5. Python严格区分大小写;
      6. 建议使用驼峰命名法:
        • 大驼峰:VariableName;
        • 小驼峰:variableName。
    • 常用关键字
      在Python中查看Python关键字
    In[2] : import keyword
    In[3] : keyword.kwlist
    Out[3]: 
    ['False', 'None','True', 'and', 'as', 'assert', 'break',
     'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
     'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
     'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
     'try', 'while', 'with', 'yield']
    
    Python中的数据类型

    数据类型###

    • Number数字
      • int 整数;
      • float 浮点型;
      • complex 复数;
      • bool 布尔。
    • string字符串
      • str = “abcd”;
      • str = 'ab' + 'cd';加号可实现字符串的拼接;
      • string可以被索引和切片;切片遵循“左开右闭”。
    • list列表
      1. list放在方括号之间,元素使用逗号隔开;
      2. 和字符串一样,list可以被索引和切片;切片遵循“左开右闭”;
      3. list可以使用加号(+)操作进行拼接;
      4. list中的元素可以被改变。
    • tuple元组
      1. 元组的元素不可被改变;
      2. 元组可以包含可变的对象,如,list;
      3. 构成0个或1个元素的元组的特殊语法:
        • tuple1=() #空元祖
        • tuple2=(1,) #一个元素,需要在元素后添加逗号
    • sets集合
      1. 确定性;
      2. 互异性;
      3. 无序性。
    • Dictionary字典
      1. 字典是一种映射类型,元素为键值对;
      2. 键(key)必须使用不可改变的数据类型(字符串、数值、元组),在同一个字典中键(key)必须唯一;
    Python中的运算符

    运算符###

    • 算术运算符
      • 加+ : 两个数相加;c = a + b
      • 减- : 两个数相减; c = a - b
      • 乘* : 两个数相乘; c = a * b
      • 除/ : 两个数相除; c = a / b
      • 取模(取余)% : 返回两个数除法的余数; c = a % b
      • 幂** : 幂运算;相当于内置函数pow(a, b);c = a ** b
      • 取整除// :取两个数除法的整数部分。 c = a // b
    • 赋值运算符
      • 等号= : 等值赋值;
      • 加法赋值+=: 先做加法运算再赋值;
      • 减法赋值+=: 先做减法运算再赋值;
      • 乘法赋值*=: 先做乘法运算再赋值;
      • 除法赋值/=: 先做除法运算再赋值;
      • 取余赋值%=: 先做取余运算再赋值;
      • 幂赋值**=: 先做幂运算再赋值;
      • 取整除赋值//=: 先整除再赋值。
    • 比较运算符
      • 等于==
      • 大于>
      • 小于<
      • 大于等于>=
      • 小于等于<=
    • 逻辑运算符
      • 与:and
        if condition1 and condition2:
      • 或:or
        if condition1 or condition2:
      • 非:not
        if not condition:
    Python中的位运算
    • 位运算符
      • 按位与运算& :二进制位中,对应位置都为1得1,其他情况都为0;
      • 按位或运算| : 二进制位中,对应位置都为0得0,其他情况都得1;
      • 按位异或运算^ : 二进制位中,对应位置相同得0,不同得1;
      • 按位取反运算~ :按位取反;注意,负数以补码形式存储,转化为十进制时,首位(符号位)不变,其他位按位取反,末位+1。
      • 左移位运算<< : a << b表示a左移b位,高位丢弃,低位补0;
      • 右移位运算>> : a >> b表示a右移b位,左边空出的位用0或者1填补。
        • 正数用0填补,负数用1填补。
    • 示例:
      下面只给出左移与右移运算示例哈
    ### 左移与右移运算
    ## 输出二进制数字
    a = 15
    b = 3
    print("%d的二进制为:%s" % (a, "{:b}".format(a).rjust(8, '0')) )
    print("%d的二进制为:%s" % (b, "{:b}".format(b).rjust(8, '0')) )
    # 将a左移b位
    print('=*'*10, '将a左移b位', '=*'*10)
    l3 = a << b
    print("%d的二进制为:%s" % (l3, "{:b}".format(l3).rjust(8, '0')) )
    # 将a右移b位
    print('=*'*10, '将a右移b位', '=*'*10)
    r3 = a >> b
    print("%d的二进制为:%s" % (r3, "{:b}".format(r3).rjust(8, '0')) )
    
    ## 负数的左右移操作
    c = -7
    print("
    %d的二进制为:%s" % (b, "{:b}".format(b).rjust(8)) )
    print("%d二进制为:%s" % (c, "{:b}".format(c).rjust(8)) )
    # 将c左移b位
    print('=*'*10, '将c左移b位', '=*'*10)
    nl3 = c << b
    print("%d的二进制为:%s" % (nl3, "{:b}".format(nl3).rjust(8)) )
    # 将c右移b位
    print('=*'*10, '将c右移b位', '=*'*10)
    nr3 = c >> b
    print("%d的二进制为:%s" % (nr3, "{:b}".format(nr3).rjust(8)) )
    
    

    输出:

    ========== 左移与右移运算 ==========
    15的二进制为:00001111
    3的二进制为:00000011
    ========== 将a左移b位 ==========
    120的二进制为:01111000
    ========== 将a右移b位 ==========
    1的二进制为:00000001
    3的二进制为: 11
    -7二进制为: -111
    ========== 将c左移b位 ==========
    -56的二进制为: -111000
    ========== 将c右移b位 ==========
    -1的二进制为: -1

    总结
    1. 本文完整示例:下载示例
    2. 本文给大家介绍了环境的搭建与配置,推荐Anaconda,讲解了Python中最基础的一些概念、数据类型、算数运算符和逻辑运算符等。光说不练假把式,所以,多多动手,撸代码!加油。
    3. 能力有限,欢迎指错交流;如果感觉不错,右下角支持下哈。-

    欢迎关注个人微信公众号WaltSmithML或新浪微博WaltSmith,本人主要方向为机器学习和深度学习。非常热烈欢迎一起交流学习哈,除了学习,还可免费帮忙download论文或者书籍哈==============
    ♥♥♥微信公众号♥♥♥微信公众号WaltSmithML二维码♥♥♥新浪微博WaltSmith二维码♥♥♥新浪微博♥♥♥

  • 相关阅读:
    9.11 eventbus
    9.10,,,实现new instanceof apply call 高阶函数,偏函数,柯里化
    9.9 promise实现 写完了传到gitee上面了,这里这个不完整
    9.5cors配置代码
    9.5 jsonp 实现
    9.5 http tcp https总结
    9.3 es6 class一部分 and es5 class 发布订阅
    8.30 cookie session token jwt
    8.30vue响应式原理
    warning: LF will be replaced by CRLF in renard-wx/project.config.json. The file will have its original line endings in your working directory
  • 原文地址:https://www.cnblogs.com/waltsmith/p/8034876.html
Copyright © 2011-2022 走看看