源码
Python解释器:从文件第一行开始,一直运行到文件末尾,会执行文件中的每一行python代码。
Python标准库:是一组丰富的软件模块,提供了大量预建(且高质量)的可重用代码,每个模块中又有很多子模块或者函数。
Datetime模块
os模块: getcwd函数
import os
os.getcwd()-------------得出代码所在文件夹的名字
os.environ----------访问系统的全部环境变量
os.getenv(‘HOME’)--------单独访问某一个环境变量
sys模块:了解运行解释器的系统
import sys
sys.platform------了解运行解释器的系统
sys.version-----------了解关于所运行的Python版本的大量信息
datetime模块
import datetime
datetime.date.today()------今天的日期
datetime.date.today().year------今天日期的组成成分
datetime.date.today().month
datetime.date.today().day
datetime.date.iosformat(datetime.date.today())-----今天的日期转换为一个字符串
time模块
import time
time.strftime(“%H:%M”)------24小时制的时间
time.strftime(“%A &p”)-----星期及上下午
HTML模块
Import html
html.escape(……….)-----字符串转换
html.unescape(……….)
< ------<
>------->
心号------♥
内置电池----Python的标准库
内置数据结构:
列表:[ ]
可以包含任何类型的数据
Python变量会动态赋值
在Python中,第一次使用变量时,变量就会立即存在,不需要预声明,Python变量会从所赋对象的类型得到自己的类型信息。
可以向变量赋值 一个方法调用的结果。
Python的“超级操作符”:in: 检查一个对象是不是在另一个对象里
Python的代码块:缩进形式划分代码块,还有冒号:,冒号后必须缩进,表示引入一个新的代码组
If -----else
elif
12/14
循环
for 提前知道需要多少次迭代
for i in [1,2,3]:
print(i)
While 不知道需要多少次迭代
range 接收一个整数参数,指示for循环要运行多少次。
for num in range(5):
print(‘HeadFirst Rocks!’)
模块调用
Import time
time.sleep(5)----让执行暂停5秒
import random
random.randint(1,60)----在1-60中随机生成一个数字
12/15/18
列表数据---处理有序数据
1、数字、字符串、对象
2、内置数据结构:
列表:有序的可变对象集合。
[ ] ; ,
字面列表
元组:有序的不可变对象集合,是常量列表
字典:无序可变数据结构。字典中每个唯一键有一个与之关联的值,字典可以包含多个键/值对。与键关联的值可以是任意对象。
集合:无序的唯一对象集合,集合可以根据需要扩展(和收缩)。集合不允许有重复的对象。
12/19/18
问题:本来很疑惑为什么列表切片中,letters[开始:结束:步长],其中并不包括“结束”这个索引值,但是使用letter[::1]时,就包含了最后一个索引值,于是就试了几下:
[if !vml]
[endif]
可以看到,当“结束”索引值是4的时候,并不包含4位置也就是最后一个位置上的元素。但是当“结束”索引值是5或者更大的数字时,就包含了最后一个元素。定义上说“如果没有指定结束值,则取列表允许的最大值”,实验证明,列表允许的最大值可以是5、6、7等超过列表元素的值。因而当处于默认状态时,就意味着取无限大。
经专业人士解释:左闭右开。。。。
注意:
[if !vml]
[endif]
在’’.join()中,只允许有一个数组,所以如图中有多个元素时,需要加上[],变成’’.join([…,….,……,……])
《HeadFirst Python》第二章结束
第二章:列表数据:处理有序数据
在python中,一切都是对象,意味着所有对象都可以赋给变量。
内置数据结构:列表,元组,字典,集合
列表:可异构,动态变化
外形特点:[ ] ,
字面列表:一次性完成创建和填充
函数:len() 会报告一个对象的大小
Found = []
Len(found)
输出显示:0
“扩展”列表:
函数:append()
found.append(‘a’)
len(found)
输出:1
found
输出:0
if…..in…..
if……not in…….
vowels = [‘a’,’e’,’i’,’o’,’u’]
word = “Milliways”
for letters in word:
if letter invowels:
if letternot in found:
found.append(letter)
for vowel in found:
print(vowel)
word = input(“provide a word to search for vowels:”)
从列表中删除对象:
remove() 取一个对象值最为唯一参数
pop() 取一个可选的索引值作为参数
用对象扩展列表:
extend() 取一个对象列表作为唯一参数
insert() 取一个索引值和一个对象作为参数
list() 将字符串转换为列表
copy() 复制列表
列表扩展中的中括号记法:
letter[start:stop:step]
letter[3:] 跳过前三个字母,然后给出其余的所有字母
letter[:10] 直到(但不包含)索引位置的10的所有字母
letter[::2] 步长为2
‘’.join() 将列表转换为字符串
list()
列表切片——非破坏性的
Python
缺点:第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。
再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
Python交互模式和命令模式执行python代码的区别:
Python交互模式的代码是输入一行,执行一行,而命令行模式下直接运行.py文件是一次性执行该文件内的所有代码。可见,Python交互模式主要是为了调试Python代码用的,也便于初学者学习,它不是正式运行Python代码的环境!
在Python交互式模式下,可以直接输入代码,然后执行,并立刻得到结果。
在命令行模式下,可以直接运行.py文件。
Python的缩进格式利弊:
缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。
缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码。
缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。
最后,请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。
Python数据类型:
如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:
'I\'m \"OK\"!'
表示的字符串内容是:
I'm "OK"!
源代码
源码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。音乐家用五线谱和音符,建筑师用图纸和笔,那程序员的工作的语言就是“源码”了。源代码不能直接运行,必须编译后才能运行。源码经过编译处理后就可以直接在操作系统下运行了。
人们平时使用软件时就是程序把“源码”翻译成我们可直观的形式表现出来供我们使用的。
任何一个网站页面,换成源码就是一堆按一定格式书写的文字和符号,但我们的浏览器帮我们翻译成眼前的模样了。
源代码是指原始代码,可以是任何语言代码。
汇编码是指源代码编译后的代码,通常为二进制文件,比如共享库、可执行文件、.NET中间代码、JAVA中间代码等。
高级语言通常指C/C++、BASIC、C#、JAVA、PASCAL、易语言等等。汇编语言就是ASM,只有这个,比这个更低级的就是机器语言了。
源码主要功用有如下2种作用:
1.生成目标代码,即计算机可以识别的代码。
2.对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。
源码组合
网站源码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。
较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低这种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。
还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。
执行效率
虽然我们可以通过不同的语言来实现计算机的同一功能,但在执行效率上则存在不同。普遍规律是:越高级的语言,其执行效率越低。这也是为什么汇编语言生成的文件比用BASIC语言生成文件普遍要小的原因。
源代码就是用汇编语言和高级语言写出来的代码。主要对象是面向开发者;
我们平常使用的应用程序都是经过源码编译打包以后发布的,呈现的最后结果是面向使用者,最终客户的。
HTML
超文本标记语言,标准通用标记语言下的一个应用。
“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
制表符(也叫制表位)的功能是在不使用表格的情况下在垂直方向按列对齐文本。
水平制表符就是水平空出几个格,说像一下打了几个空格一样。编程里面用“\t”表示。垂直制表符就是垂直空出几个格,说像一下打了几个回车一样。编程里面用“\v”表示。