一、简介
1、背景知识
是一门简明并强大的面向对象的编程语言。
在WEB开发上面广泛应用, 于软件开发之中大量运用, 对科学运算来讲频繁使用, 是大数据分析所常常采用的, 在自动化运维涉及的范畴里普遍用到。
主流语言的区别和特点
C\C++, 其学习成本颇高, 学习周期漫长, 偏向于系统底层, 乃是在开发硬件驱动、嵌入式、以及游戏引擎开发等诸多领域之中都有着广泛应用的一种技术。
Java, 是当下使用最为普遍广泛的编程语言, 是首个实现跨平台的语言, 在大型ERP软件的开发领域广泛应用, 在安卓APP的开发领域广泛应用, 在网站开发的领域广泛应用。
可以应用的范围差不多跟Java一样宽广, 然而其开发的效率比Java要高些, 并且学习所需的成本比较低, 在科学运算方面, 在数据分析领域, 在网站开发范畴, 在爬虫开发领域。
云计算\自动化运维\自动化测试等领域优势明显
PHP为Web开发语言里使用范围最为广泛的那种, 特别契合中小型网站的开发, 其学习所需成本比较低 , 开发效率是很高的。
2、简介
创始人 Guido Van, 这个人被叫作“龟叔”, 在1989年的圣诞节那段时间, 是为了能在阿姆斯特丹把时间给打发掉, 去开发的, 一个且新的脚本解释程序。
作为ABC语言的一种继承
早期翻译 编译/解释,语言分类
编译型
解释型
混合型
编译型
优点: 编译器通常会存在预编译的进程, 以此对代码予以优化。因编译仅执行一回, 在运行的时候无需编译, 故而编译型语言的程序执行效率颇高。能够脱离语言的环境单独运行。
存在的问题是, 编译完后要是有修改需求, 那就得对整个模块再度进行编译, 编译之际会依照对应的运行环境去生成机器码, 如此一来, 在不同操作系统间进行移植便会出现状况。
需要根据运行的操作系统环境编译不同的执行文件。
解释型
优点在于兼具良好的平台兼容性, 无论处于何种环境皆能够运行, 条件是已安装解释器(虚拟机)。具备灵活性,修改代码之时径直修改便可, 能够进行快速部署, 无需停机予以维护。
缺点 :每次运行的时候都要解释一遍,性能上不如编译型语言。
优缺点
优点:简单易学,入门容易
高级语言, 它不需要去考虑, 像怎样去管理你程序使用的内存这种底层细节。
可移植性, 即你的全部程序, 在几乎无需进行修改的情况下, 就能够在市面上所有的系统平台之上运行。
可拓展模式, 要是你期望让你一段主要代码运行得更为快速, 或是期盼某些算法不被公开, 那么你能够用C或是C++编写出一部分程序进而编写你的部分程序, 随后在你的程序里运用它们。
可嵌入类型, 你能够将其嵌入进你的C/C++程序当中, 进而朝着你的程序用户去提供脚本功能。
缺点:
运行速度慢
代码不能加密
线程不能利用多CPU问题(有折中的解决方案)
二、变量
变量定义: 被用来存储, 在于, 并且, 在一个, 之中。
用于存储程序运行的中间运算结果
变量在程序中用一个变量名表示
在其中, 等号 = 属于赋值语句, 能够将任意数据类型赋予变量, 同一变量能多次给予赋值, 并且可以是不同类型的变量。
= "" = "Ni"
请不要把赋值语句的等号等同于数学的等号。比如下面的代码:
x = 8 x = x + 2
要知晓, 从数学角度去领会, x 等于 x 加上 2 这种情形是不具备成立条件的。于程序范畴内, 赋值语句按先后顺序会先对右侧的表达式 x 加上 2 予以计算, 进而获取得到结果为 10, 之后才会将此结果赋予变量 x。
由于x之前的值是8,重新赋值后,x的值变成10。
明白变量于计算机内存里的呈现极其关键, 要是像下面这样声明变量且进行赋值。
a ="ABC"
解释器干了两件事情:
于内存里头创建了一个有着"ABC"的字符串, 于内存里头创立了一个名为 a 的变量, 且将其指向"ABC"。
常量就是不能变的量,通常用全部大写的变量名表示。
PI = 3.
总结:
在计算机的内部空间里, 任何形式的数据都会被视作一个“对象”, 而变量呢, 是在程序运行过程中用于指向这些数据对象的, 对变量进行赋值这个行为, 就是把数据与变量构建起关联关系。
三、数据类型
机器是那种能够进行数学计算的计算机, 计算机会理当要去处理各种各样数值, 除过数值之外, 计算机还能够处理文本, 还有图形, 以及音频, 再者视频, 甚至网页这类。
各种数据。不同的数据,需要定义不同的数据类型。
数字
整数, 其表示方法与数学上的写法相同, 像1, -100, 0, 1000等这样的形式。或者是用16进制来表示, 比如某些特定的情况, 等等。
那被称作浮点数的, 其实就是那小数, 比如说存在像0.99这样的, 还有 -1.25 这样的, 以及88.88 这样的等等。又或者, 可用科学计数法来表示, 像1.23e8这样的, 还有1.2e - 8这样的等等。
以下为改写后的句子: 复数, 它是由实数部分以及虚数部分构成的, 其一般形式呈现为 x 加上 yj 这种样子, 就像(-5 + 4j)这类的。
数字没有大小限制,超出一定范围就直接表示为inf(无限大)
字符串
由单引号'或双引号"括起来的任意文本被称为字符串, 像'abc'"XYZ"这类, ' 或" 仅是一种表示形式, 并非字符串的构成部分。
例如 'abc'只有a,b,c 这3个字符。
假设 ' 自身同样是一个字符,那么便能够使用"" 将其括起来, 举例来说"I'm OK" 所涵盖的字符为I, 其中的 ', m, 空格, O, K这六个字符。
既在进行字符串表示时, 其内部存在 ' 这种字符, 同时又存在" 这种字符的情况下, 能够借助转义字符 \ 予以标识。像 'I\'m \"OK\"!' 这样的示例 , 所达成的结果是表示 I'm"OK"!。
就转义字符而言, 它能够对诸多字符予以转义, 像那\n所代表的乃是换行, \t的意思是制表符, 而\\表示的是字符\。
字符串常用功能
用于移除字串头尾指定字符(默认为空格)的, 是.strip() 方法。
对于字符串""执行去除两端空白字符的操作, 结果是"" , 对于字符串";;;"执行去除两端分号字符的操作, 结果是""。
参数: chars -- 移除字符串头尾指定的字符
被返回的值是, 由借助移除字符串开头以及末尾所指定的字符而生成的新字符串, 原本的字符串维持不变。
len()方法返回字符串长度。
len("") >>> 8
参数: str -- 字符串
返回值:字符串长度
检测字符串中是否包含子字符串 str, 会用到.index(str, beg=0, end=len(str))方法。
拿空字符串去调用index方法, 传入字符“J”, 其结果是0 , 拿空字符串去调用index方法, 传入字符‘J’并指定起始位置为1, 其结果是未找到。
参数:
str, 即指定进行检索操作的那个字符串, beg是开始索引, 其默认取值为0, end为结束索引, 它的默认值是字符串自身的长度。
返回值:如果包含子字符串返回开始的索引值,否则抛出异常。
访问字符串中的值
并不是对单字符类型予以支持, 单字符同样是当作字符串被使用。若要访问子字符串, 能够运用方括号去截取字符串。
>>>"J", 下标起始之处为0 , >"Jon" 然而秉持顾头却不顾尾之态 , >"n" 此乃倒数首个字符 , >"ha" 依旧是顾头不顾尾数之 , 不存在从反方面经由前往后予以截取的状况 , >"han" 解释器将其认定是从倒数第三个起直至最后面所有字符 是这样的 , 解释器无法区分究竟属于单个字符还是处于一个区间范围之内的字符 , 呈现为空状态 时 , 解释器把它识别作全部字符。
0:len("")
>>>"" ""
-len(""):
把引号内的空字符串, 与字符串“Jnta”进行比较, 这里最后一位数字代表步长为2。
字符串拼接
你所提供的内容包含代码相关表述,按照要求仅进行句子改写如下: “Jon”加上空字符串, 结果是, 空字符串, 在遇到加号的时候, 解释器会需要重新申请内存。
格式化输出
name被赋值为空字符串, 接着在控制台打印出这样一句话, 即"My name is %s.", 其中%s处填入name所代表的值, 结果显示为"My name is ."。
布尔型
布尔值跟布尔代数的呈现全然相符, 某一个布尔值仅有那两种值, 即True以及False(留意大小写), 布尔值能运用and、or还有not展开运算。
and运算, 也就是与运算, 只有当全部都为True时, and运算得出的结果才会是True。
或运算是or运算, 只要其中有一个为True, or运算的结果便是True:
非运算是not运算, 它属于一个单目运算符, 会将True转变为False, 又把False转化为True。
布尔值经常用在条件判断中
如果年龄大于等于一十八岁, 那么打印出“成年人”, 否则打印出空字符串。
空值
空值是另外一个特殊的值, 它是用None来作表示的。在这其中, None可不能被理解成0, 这是因其0是拥有意义的, 然而None却是一个特别的空值。
列表
列表属于极为常用的数据类别, 借助列表能够针对数据开展最为便利的存储、修改这般的操作。
定义列表 names =
"Jon", "Alex", "Tom", ""
通过下标访问列表中的元素,下标从0开始计数
名字 , 大于号右边是 “乔恩” , 名字 , 大于号右边是 空字符串。
对列表进行操作
"","Alex", "Tom","","Jim"
# 将元素 names.(2"Linda") 附在列表的最后位置 , 可得到最终结果 >>>。
有没有引号, 有Alex, 有Linda, 有Tom, 有没有引号, 有Jim。
将其插入在下标是2的那个地方, 使得其他的元素都往后移动, names.("Linda") >>>。
"","Alex", "Tom", "", "Jim"
将第一个被检索出来的元素进行删除, 删除的是名为names的元素 , 有这样的操作指令 , 在使用的时候会显示大于号。
"","Alex", "Tom", ""
依据下标去删除元素, names.index("Alex")这个操作, 返回的下标是1, names.sort()这个操作。
"Alex", "", "", "Tom"
# 按照ASCII正序排列 names.() >>>
"Tom", "", "", "Alex"
对元素进行反转, names.count("Tom"), 其结果为1, 此为返回出现的次数。
四、运算
算术运算
比较运算
赋值运算
逻辑运算
成员运算
身份运算
位运算
五、流程控制
条件
循环
六、文件操作