Python初识--基础
| 碎碎念 |
- 最初想写一些机器学习算法的实现类的文章,但发现自己工作经验不足,即使写出来,也只是一些应用场景十分狭隘的小实验;
- 了解到身边有些朋友和同学也想了解学习一下脚本语言Python(毕竟是后起之秀),纸质、电子资源大家都有,可是总感觉学起来么劲,就是没有小伙伴一起学嘛;
- 综上,我打算写一个系列的Python教程,侧重点是为机器学习和深度学习打下基础。
- 这或许在别人看起来可能是微不足道的工作,但对我而言,要全面、系统且有侧重点地整理Python知识,这不仅是对我过去Python学习的检验,也是对我现在的时间管理的一个挑战。
- 我会坚持下去!欢迎大家留言骚扰,不亦乐乎,能力所限,欢迎指教。
| 前言 |
- 实验环境: Python 3.6;
- 本文完整示例:下载示例
| 基本知识 |
Python的特点###
- 面向对象的解释性语言;
- 简单易学;
- 丰富的库;
- 强制使用制表符作为语句缩进(white space)。
Python的优缺点###
- 优点
- 简单、易学;
- 免费、开源;
- 可扩展性、可嵌入性;
- 丰富的库。
- 缺点
- 运行速度较慢;
- 中文资料匮乏;
- 代码不能加密。
Anaconda安装与配置
十分推荐Anaconda,它是一个集成开发环境,集成了众多常用Python库,免去了开发环境配置的繁琐,让我们更专心地去学习真正的技术。大赞
Pycharm的安装与配置###
- 下载安装
官方下载地址
安装方法:一路next。 - 注册服务器:
server选项里边输入 http://elporfirio.com:1017/
或者:server选项里边输入 http://idea.imsxm.com/
使用激活码的小伙伴点这里复制激活码。 - Pycharm汉化
如果英文水平ok,就不建议汉化了。
Pycharm汉化包下载地址
复制resources_cn.jar放在PyCharm安装目录下的lib文件夹。
Python注释语法###
- 注释的作用
- 增加程序的可读性;
- 作为调试时使用;
- 提高团队的合作效率。
- 注释的分类
- 单行注释;
以符号#开头,表示当前行其后的内容为注释。 - 多行注释;
- 采用三对单引号表示
'''多行注释'''。
- 采用三对单引号表示
- 单行注释;
| Python中的变量 |
Python中的变量###
- 什么是变量?
用来存储数据的量。 - 什么是标识符?
标识符是用户自定义的,如变量名、函数名等。 - 标识符的命名规则
- 只能包含字母、数字和下划线;
- 只能以字母或下划线开头,开头不能使用数字;
- 不能包含空格,可使用下划线分割单词;
- 不能使用Python中的关键字作为变量名;
- Python严格区分大小写;
- 建议使用驼峰命名法:
- 大驼峰: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列表
- list放在方括号之间,元素使用逗号隔开;
- 和字符串一样,list可以被索引和切片;切片遵循“左开右闭”;
- list可以使用加号(+)操作进行拼接;
- list中的元素可以被改变。
- tuple元组
- 元组的元素不可被改变;
- 元组可以包含可变的对象,如,list;
- 构成0个或1个元素的元组的特殊语法:
- tuple1=() #空元祖
- tuple2=(1,) #一个元素,需要在元素后添加逗号
- sets集合
- 确定性;
- 互异性;
- 无序性。
- Dictionary字典
- 字典是一种映射类型,元素为键值对;
- 键(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:
- 与:and
| 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
| 总结 |
- 本文完整示例:下载示例
- 本文给大家介绍了环境的搭建与配置,推荐Anaconda,讲解了Python中最基础的一些概念、数据类型、算数运算符和逻辑运算符等。光说不练假把式,所以,多多动手,撸代码!加油。
- 能力有限,欢迎指错交流;如果感觉不错,右下角支持下哈。-
欢迎关注个人微信公众号WaltSmithML或新浪微博WaltSmith,本人主要方向为机器学习和深度学习。非常热烈欢迎一起交流学习哈,除了学习,还可免费帮忙download论文或者书籍哈==============
♥♥♥微信公众号♥♥♥♥♥♥
♥♥♥新浪微博♥♥♥
Python初识--基础的更多相关文章
- Python初识与简介【开篇】
目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...
- python初识(二)
目录: 进制 基本数据类型 整形 布尔值 字符串 列表 元祖 字典 集合 range & enumerate 一.进制 二进制转换十进制计算: 十进制:==47 一个字节公式:==128 64 ...
- Python机器学习基础教程-第1章-鸢尾花的例子KNN
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- Python 入门【一】Python 初识及学习资料
Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...
- Python初识
Python第一天 一.为什么学Python 作为一名linux运维工程师现在越来越感觉不好干了.没有地位,还待背黑锅,并且运维自动化发展的这么快,普通运维岗位的路也越来越窄(因为我 ...
- Python文件基础
===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...
- 3.Python编程语言基础技术框架
3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- 小白必看Python视频基础教程
Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...
随机推荐
- C++中的endl
从开始接触C++到现在,一直以为语句 cout << "hello world!" << endl; 中的endl只是一个相当于C中的换行'\n':直到今天 ...
- 【JavaEE】企业面试问题-Java基础
1. Java基础部分 1.1 Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意思? 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的 ...
- 基于winsocket的框体Server和Client
前面学了一点Winsock的知识,会编写简单的Server和Client,现在就想通过VS2008编写框体的Server和Client,而不是在控制台上的操作了,毕竟学编程就是要多加练习,在实践中发现 ...
- 记录下Webapi签名机制
首先,写这篇文章的原因是因为最近某一个项目中的接口被人为调用了,导致了数据库数据被串改.虽然是内部人无意点的,但还是引起了我的担忧,所有整理了下关于Webapi的相关签名机制. 一.我们在开发接口时, ...
- JavaNIO阻塞IO添加服务器反馈
package com.java.NIO; import java.io.IOException; import java.net.InetSocketAddress; import java.nio ...
- css中单位px和em,rem的区别[转载]
PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是96%以上 ...
- .md即markdown文件的基本常用编写语法
因为现在的前端基本上都用上了前端构建工具,那就难免要写一些readme等等的说明性文件,但是这样的文件一般都是.md的文件,编写的语法自然跟其他格式的文件有所区别,本文也是我学习写markdown文件 ...
- 使用NPOI导出图片到EXCEL
1.首先引用NPOI 2.本例用到的引用 3.在Controller里面添加导出方法 public ActionResult ExportMsgData(string term) { //为list赋 ...
- app.config 配置多项 配置集合 自定义配置(2)
上一篇说了利用app.config自定义节点配置,那是利用工具来实现,其实也一全部编码的方式来实现.举一个栗子.Simpson一家有父亲James,母亲Kate,和三个儿女Jim,Aaron和Luka ...
- redis源码分析之有序集SortedSet
有序集SortedSet算是redis中一个很有特色的数据结构,通过这篇文章来总结一下这块知识点. 原文地址:http://www.jianshu.com/p/75ca5a359f9f 一.有序集So ...