Python基础学习笔记(1)

补上之前学习的笔记,这次学习时间2018年10月24日

第一个python程序

# 1.常用快捷键

# 运行 --> ctr+shift+f10  (win)

# 运行 --> commond+shift+r (mac)

# 注释 --> ctr+/

# python注释:在代码中不参与编译执行的文字,就注释

"""

这是第一行注释

这是第二行注释

"""

# print是python的内置函数,可以将print后面括号里面的内容在控制台显示出来

# python中的字符串可以用双引号括起来,也可以用单引号括起来

# python中一行语句结束,可以加分号,也可以不加(一般都不加)。如果一行要写多条语句,语句之间必须加分号

print('Hello world!')

print("hello python")

print(100)

进制和进制转换

# 十进制、二进制、八进制、十六进制

# 1.十进制

# 199 23  18976  239  100

# a.基数:0,1,2,3,4,5,6,7,8,9

# b.进位:逢10进1

#  23 + 78

# c.权值:123(10)  -> 100 + 20 + 3 -> 1*100 + 2*10 + 3*1 -> 1*10^2 + 2*10^1 + 3*10^0

"""

10进制:

第0位:10^0

第1位:10^1

第2位:10^2

...

# d.表示方式:python中直接写的数字都是十进制数

"""

123

100

89

# 2.二进制

# 011  110  110101  001111 11111  00000

# a.基数:0,1

# b.进位:逢2进1

# c.权值:1101(2) -> 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 1+0+4+8 = 13(10)

# d.表示方式:二进制前加前缀0b

"""

2进制:

第0位:2^0

第1位:2^1

第2位:2^2

"""

0b11100

0b11011

# 3.八进制

# 67  56  123

# a.基数:0,1,2,3,4,5,6,7

# b.进位:逢8进1

# c.权值:123(8) -> 3*8^0 + 2*8^1 + 1*8^2 = 3+16+64= 83(10)

# d.表示方法:加前缀 0o

0o67

# 4.十六进制

# 12a  234  ef aaa bbb abc

# a.基数:0,1,2,3,4,5,6,7,8,9,a/A, b/B, c/C, d/D, e/E, f/F

# a->10 b->11 c->12 d->13  e->14  f->15

# b.进位:逢16进1

# c.权值:123(16) -> 3*16^0 + 2*16^1 + 1*16^2

# d.表示方法:0x

0x123a

# 5. 其他进制转10进制:每一位上的数乘以权值,然后求和

# 6. 10进制转2进制:100(10) --> 取余法

# 7. 8进制/16进制转2进制

"""

8进制转2:1位8进制转换成3位2进制, 67(8) --> 110 111(2)  156(8) -> 001 101 110(2)

16进制转2:1位16进制转换成4位2进制,67(16) -> 0110 0111(2) 156 -> 000101010110(2)

001 001 110 001 110 111(2) -> 116167(8)

1001 1100 0111 0111(2) -> 9c77(16)

"""

# 其他进制转10进制:自动转换

a = 0x10

print(a)

# 转2进制

bin(100)

bin(0o12)

bin(0x12)

# 转8进制

oct(100)

# 转16进制

hex(100)

Practice

1.下列四组数,依次为二进制、八进制和十六进制,符合要求的是(D)

a.12,  77, 10 

b.12,  80, 10 

c.11,  78, 19

d. 11,  77,  19


2.二进制数加法运算的基本特点是“逢二进一”,即0+0=0,0+1=1,1+0=1,1+1=0并进位。运用这一基本法则和十进制运算的类似规律,得出二进制数加法运算1001+101的结果为(C)  

a. 1001

b.1010    

c. 1110

d.1101 


7.八进制754中的数码7对应的位权是(C) 

a.  10^2  b. 16^1   c. 8^2 d. 2^2 


8.十进制数53转换成二进制数是(B) 

a.100101

b. 110101

c.100100

d.110100 


9.已知,十进制中的8在X进制中表示为11,即(10)8=(X)11。请问这个X进制具体为(B)进制

a. 6

b. 7

c. 8

d.9 


10.二进制的1000001相当十进制的__65____,二进制的100.001可以表示为④ 2^2+2^–3___。 

A:  ① 62  ② 63  ③ 64  ④ 65 

B:  ① 2^3+2^–3  ② 2^2+2^–2 ③ 2^3+2^–2 ④ 2^2+2^–3


资料查阅学习

Day01 - 初识Python

Python简介

Python是一个很棒的语言,从它诞生的那天起,一直致力于向开发者提供同时具备可读性和生产力的多范式编程语言。曾经很多人都认为Python仅仅是一门脚本语言,不适合构建大型系统,但是现在在社区和先驱公司的努力下,Python已经成为可以构建绝大多数应用系统的开发语言。

Python的历史

1989年圣诞节:Guido von Rossum开始在Macintosh系统上编写Python语言的编译器。

1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,此外还支持以模块为基础的拓展系统。

1994年1月:Python 1.0正式发布。

2000年10月16日:Python 2.0发布,增加了完整的垃圾回收机制,并且支持Unicode。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。

2008年12月3日:Python 3.0发布,此版不完全兼容之前的Python代码,不过很多新特性后来也被移植到旧的Python 2.6/2.7版本,因为目前还有公司在项目和运维中使用Python 2.x版本的代码。

目前我使用的Python 3.6.x的版本是在2016年的12月23日发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(如修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以查看一篇名为《Python简史》的博文。

Python的优缺点

Python的优点很多,简单的可以总结为以下几点。

学习曲线低,与其他很多语言比上手更容易。

开放源代码,拥有强大的社区和生态圈。

解释型语言,完美的平台可移植性。

支持两种主流的编程范式,可以使用面向对象和函数式编程。

可扩展性和可嵌入性,可以调用C/C++代码也可以在C/C++中调用。

代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。

Python的缺点主要集中在以下几点。

执行效率低下,因此计算密集型任务可以由C/C++编写。

代码无法加密,但是现在的公司很多都不是卖软件而是卖服务,这个问题慢慢会淡化。

在开发时可以选择的框架太多,有选择的地方就有错误。

Python的应用领域

目前Python在云基础设施、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了服务器开发、数据接口开发、自动化运维、科学计算和数据可视化、聊天机器人开发、图像识别和处理等一系列的职位。

搭建编程环境

Windows环境

可以在Python的官方网站下载到Python的Windows安装程序(exe文件),需要注意的是如果在Windows 7环境下安装需要先安装Service Pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装),安装过程建议勾选“Add Python 3.6 to PATH”(将Python 3.6添加到PATH环境变量)并选择自定义安装,在设置“Optional Features”界面最好将“pip”、“tcl/tk”、“Python test suite”等项全部勾选上。强烈建议使用自定义的安装路径并保证路径中没有中文。安装完成会看到“Setup was successful”的提示,但是在启动Python环境时可能会因为缺失一些动态链接库文件而导致Python解释器无法运行,常见的问题主要是api-ms-win-crt*.dll缺失以及更新DirectX之后导致某些动态链接库文件缺失,前者可以参照《api-ms-win-crt*.dll缺失原因分析和解决方法》一文讲解的方法进行处理或者直接在微软官网下载Visual C++ Redistributable for Visual Studio 2015文件进行修复,后者可以下载一个DirectX修复工具进行修复。

Linux环境

Linux环境自带了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方网站下载Python的源代码并通过源代码构建安装的方式进行安装,具体的步骤如下所示。

安装依赖库(因为没有这些依赖库可能在源代码构件安装时因为缺失底层依赖库而失败)。

yum-yinstall zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

下载Python源代码并解压缩到指定目录。

wgethttps://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

xz-dPython-3.6.1.tar.xz

tar-xvfPython-3.6.1.tar

切换至Python源代码目录并执行下面的命令进行配置和安装。

cdPython-3.6.1

./configure--prefix=/usr/local/python3.6--enable-optimizations

make&&makeinstall

创建软链接,这样就可以直接通过python3直接启动Python解释器。

ln-s/usr/local/python3.6/bin/python3 /usr/bin/python3

MacOS环境

MacOS也是自带了Python 2.x版本的,可以通过Python的官方网站提供的安装文件(pkg文件)安装3.x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,可以通过执行python3命令来启动3.x版本的Python解释器,当然也可以通过重新设置软链接来修改启动Python解释器的命令。

从终端运行Python程序

确认Python的版本

在终端或命令行提示符中键入下面的命令。

python--version

当然也可以先输入python进入交互式环境,再执行以下的代码检查Python的版本。

importsys

print(sys.version_info)

print(sys.version)

编写Python源代码

可以用文本编辑工具(推荐使用Sublime、Atom、TextMate、VSCode等高级文本编辑工具)编写Python源代码并将其命名为hello.py保存起来,代码内容如下所示。

print('hello, world!')

运行程序

切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。

python hello.py

代码中的注释

注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。

单行注释 - 以#和空格开头的部分

多行注释 - 三个引号开头,三个引号结尾

"""

第一个Python程序 - hello, world!

向伟大的Dennis M. Ritchie先生致敬

Version: 0.1

Author: 骆昊

Date: 2018-02-26

"""

print('hello, world!')

# print("你好,世界!")

print('你好','世界')

print('hello','world',sep=', ',end='!')

print('goodbye, world',end='!\n')

其他工具介绍

IDLE - 自带的集成开发工具

IDLE是安装Python环境时自带的集成开发工具,如下图所示。但是由于IDLE的用户体验并不是那么好所以很少在实际开发中被采用。

IPython - 更好的交互式编程工具

IPython是一种基于Python的交互式解释器。相较于原生的Python Shell,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython和Jupyter,具体的操作如下所示。

pip install ipython jupyter

或者

python-mpip install ipython jupyter

安装成功后,可以通过下面的ipython命令启动IPython,如下图所示。

当然我们也可以通过Jupyter运行名为notebook的项目在浏览器窗口中进行交互式操作。

jupyter notebook

Sublime - 文本编辑神器

首先可以通过官方网站下载安装程序安装Sublime 3或Sublime 2。

安装包管理工具。通过快捷键Ctrl+`或者在View菜单中选择Show Console打开控制台,输入下面的代码。

Sublime 3

importurllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

Sublime 2

importurllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')

安装插件。通过Preference菜单的Package Control或快捷键Ctrl+Shift+P打开命令面板,在面板中输入Install Package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件。

SublimeCodeIntel - 代码自动补全工具插件

Emmet - 前端开发代码模板插件

Git - 版本控制工具插件

Python PEP8 Autoformat - PEP8规范自动格式化插件

ConvertToUTF8 - 将本地编码转换为UTF-8

PyCharm - Python开发神器

PyCharm的安装、配置和使用我们在后面会进行介绍。

练习

在Python交互环境中下面的代码查看结果并将内容翻译成中文。

importthis

Beautifulisbetterthanugly.

Explicitisbetterthanimplicit.

Simpleisbetterthancomplex.

Complexisbetterthancomplicated.

Flatisbetterthannested.

Sparseisbetterthandense.

Readabilitycounts.

Specialcasesaren't special enough to break the rules.

Althoughpracticalitybeatspurity.

Errorsshouldneverpasssilently.

Unlessexplicitlysilenced.

Inthefaceofambiguity,refusethetemptationtoguess.

Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.

Althoughthatwaymaynotbeobviousatfirstunlessyou're Dutch.

Nowisbetterthannever.

Althoughneverisoftenbetterthan*right*now.

Iftheimplementationishardtoexplain,it's a bad idea.

Iftheimplementationiseasytoexplain,itmaybeagoodidea.

Namespacesareonehonkinggreatidea--let's do more of those!

学习使用turtle在屏幕上绘制图形。

importturtle

turtle.pensize(4)

turtle.pencolor('red')

turtle.forward(100)

turtle.right(90)

turtle.forward(100)

turtle.right(90)

turtle.forward(100)

turtle.right(90)

turtle.forward(100)

turtle.mainloop()

你可能感兴趣的:(Python基础学习笔记(1))