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二维码♥♥♥新浪微博♥♥♥

  • 相关阅读:
    进程间通信-管道,消息,共享内存,信号量,信号,scoket
    高并发架构相关概念
    在WSL2中 安装 .NET Core SDK 进行Linux 开发工作
    OKR专题
    logback是怎么知道java代码的行数的?
    IDEA plugins
    [LeetCode] 956. Tallest Billboard 最高的广告牌
    上周热点回顾(8.10-8.16)团队
    【故障公告】腾讯云短信服务故障造成无法发送手机短信团队
    HBase~hbase-shaded-client解决包冲突问题
  • 原文地址:https://www.cnblogs.com/waltsmith/p/8034876.html
Copyright © 2011-2022 走看看