作者:闻汝婕环境_259 | 来源:互联网 | 2023-08-30 20:59
第一周第5章1、编辑语言主要从以下几个角度进行分类,编辑型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。2、编译型和解释型 编译型语言:c c++ 解释型语言:j
第一周
第5章
1、编辑语言主要从以下几个角度进行分类,编辑型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。
2、编译型和解释型
编译型语言:c c++
解释型语言:java Javascript python 更容易移植
3、动态语言和静态语言
通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
1)动态类型语言:是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编辑时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言
2)静态类型语言:与动态类型语言刚好相反,它的数据类型是在编译期间检查的,也就是说在写程序时要声明所有变量的数据类型,c/c++是静态类型语言的典型代表,其他的静态型语言还有c#、JAVA等。
4、强类型定义语言和弱类型定义语言
1)强类型定义语言:强制数据类型定义的语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它将永远是这个数据类型了。
2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反,一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色与弱类型定义语言,但是强类型定义语言带来的严谨能够有效的避免许多错误。另外,这门语言是不是动态语言与这门语言是否类型安全之间是完全没有联系的。
例:python是动态语言,是强类型定义语言,JAVA是静态语言,是强类型定义语言
5、python的优缺点
优点:
1)python的定位是“优雅”、“明确”、“简单”,所以python程序看上去总是简单易懂,初学者学python,不但入门容易,而且将来深入下去,可以编写那么非常复杂的程序。
2)开发效率非常高,python有非常强大的第三方库,基本上你想通过计算机实现任何功能,python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
3)高级语言:当你使用python语言编写程序的时候,你无需考虑如何管理你的程序使用的内存一类的底层细节。
4)可移植性:由于它的开源本质,python已经被移植在许多平台上,如果你小心地避免使用依赖系统的特性,那么你的所有python程序无需修改就几乎可以在市场上所有的系统平台上运行。
5)可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用c或c++编写,然后在你的python程序中使用它们。
6)可嵌入式:你可以把python嵌入到你的c/c++程序,从而向你的程序用户提供脚本功能。
缺点:
1)速度慢:python的运行速度相比c语言确实慢很多,跟JAVA相比也要慢一些,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来。除非要写对速度要求极高的搜索引擎等,这种情况写,当然还是建议你用c去实现的。
2)代码不能加密,因为PYTHON是解释性语言,它的源码都是以明文形式存放的。
3)线程不能利用多CPU问题,这是python被人诟病最多的一个缺点,GIL即全局解释器锁(Global interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,python的线程是操作系统的原生线程,在Linux上为pthread,在windows上为win thread,完全由操作系统调度线程的执行,一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
6、python 解释器
当我们编写python代码时,我们得到的是一个包含python代码的以.py为扩展名的文本文件。要运行代码,就需要python解释器去执行.py文件。
Cpython 一般用的都是这个
Ipython
Pypy 可以显著提高python代码的执行速度。
Jython
IronPython
Python的解释器很多,但是使用最广泛的还是Cpython。如果要和java或.net平台交互,最好的办法不是用Jython或Ironpython,而是通过网络调用来交互,确保各程序之间的独立性。
第6章
1、Twisted(不支持3.0)目前不知道支持不支持
2、变量\字符编码
变量是为了存东西,为了后面的调用,
Name 改变后 Name2不会改变 因为name2直接指的是Alex|| 的内存地址,所以name变的时候name2不会改变
#变量定义的规则
1)变量名只能是字母、数字或下划线的任意组合
2)变量名的第一个字符不能是数字
3)以下关键字不能声明为变量名
第7章
1、字符编码和二进制
字符编码:ASC||码 0-127 中文:GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。
2、显然ASC||码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码,Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的 字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(2个字节),即:2**16=65536.
注:此处说的是最少2个字节,可能更多。
UTF-8,是对Unicode编码的压缩和优化,它不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascii)’
字符发展史
在python中要是使用汉字的话 需要用UTF-8模式
第8章
#注释
‘’‘ ‘’‘ 多行注释 还可以打印多行
Print (msg)就可以把注释的都打印出来
1、用户输入 input()默认的类型是str
字符串拼接格式 三种方法:(效率低下)
1、+号
2、%s是占位符(%string) %d是占位符(即是数字)%f(浮点)
3、{} .fotmat()
1、getpass 库 可以实现密文
在pycharm中不好使的
如何判断输入用户的密码对不对?
If elif else 条件语句:
如果while语句成立 就执行其下的子程序 如果不成立 则执行else语句。
2、for循环
For in range(3):
Print()
3、continue 继续 跳出本次循环 继续下次循环
4、break 是结束当前循环,不是结束所有的循环。