碎碎念
  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("\n%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论文或者书籍哈==============

♥♥♥微信公众号♥♥♥♥♥♥♥♥♥新浪微博♥♥♥

Python初识--基础的更多相关文章

  1. Python初识与简介【开篇】

    目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...

  2. python初识(二)

    目录: 进制 基本数据类型 整形 布尔值 字符串 列表 元祖 字典 集合 range & enumerate 一.进制 二进制转换十进制计算: 十进制:==47 一个字节公式:==128 64 ...

  3. Python机器学习基础教程-第1章-鸢尾花的例子KNN

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  4. Python 入门【一】Python 初识及学习资料

    Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...

  5. Python初识

    Python第一天   一.为什么学Python        作为一名linux运维工程师现在越来越感觉不好干了.没有地位,还待背黑锅,并且运维自动化发展的这么快,普通运维岗位的路也越来越窄(因为我 ...

  6. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  7. 3.Python编程语言基础技术框架

    3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...

  8. Python爬虫基础

    前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...

  9. 小白必看Python视频基础教程

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...

随机推荐

  1. JNI 对象处理 (转)

    JNI 的基本问题就是解决 Java 和 C++ 代码互相调用的通信问题,在 C++ 代码编写过程中最大的问题莫过于适应其中的代码编写规则,C++调用或是返回的内容必须遵守 JVM 和 C++ 代码的 ...

  2. Javascript的RegExp对象(转载自网络)

    正则表达式是一个描述字符模式的对象. JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. '***************** ...

  3. 利用wsdl.exe自动将wsdl文档转换为C#代码

    1.获取完整的wsdl文档 获取下面这个博客中提到的wsdl http://www.cnblogs.com/LCCRNblog/p/3716406.html 将获取到的wsdl放到一个文本中,改后缀( ...

  4. Catch him

    Problem Description 在美式足球中,四分卫负责指挥整只球队的进攻战术和跑位,以及给接球员传球的任务.四分卫是一只球队进攻组最重要的球员,而且一般身体都相对比较弱小,所以通常球队会安排 ...

  5. Hadoop,master和slave简单的分布式搭建

    搭建过程中配置免密钥登录为了以后方便使用 [提醒]安装Hadoop中会遇到新建文件夹,配置路径等问题,这个不能生搬硬套,要使用自己配置的路径,灵活使用. Hadoop的部署配置文件在http://bl ...

  6. caffe源码分析 vector<Blob<Dtype>*>& bottom

    Blob:4个维度 n x c x h x w: bottom[0] .bottom[1]代表该层有几个输入. bottom[0]->count(): 输入中,元素的总维数(个数) bottom ...

  7. 关于隐藏元素高度的问题 css visibility:hidden 与 display:none的区别

    其实这是一个老问题了,s visibility:hidden 与 display:none 共同点就是都会似的元素不可见.但是 visibility:hidden 的DOM元素是占用空间的,会挤占其他 ...

  8. ABP框架个人开发实战(1)_环境搭建

    前言 之前关注ABP框架有一阵子了,一直没有潜下心来实际研究一下.最近想自己建站,以后有自己的功能开发项目,可以在自己的站点上开发,并一步步的完善,所以找个比较好用的框架迫在眉睫,选来选去,决定用AB ...

  9. java 数据分页

    分页逻辑 import lombok.Data; /** * User eric * Date * Email yq@aso.ren */ @Data public class PageHelper ...

  10. Velocity(5)——#macro 指令

    1 #macro(formatIncreaseData $increase) 2 #if(${product.onlineStatusFlag} =='0') 3 -- 4 #elseif(!$inc ...