【JS】Python这几招,你还不知道吗?
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
一、Python的特点:
(1)简单易学
Python是一种代表简单主义思想的语言。阅读一个良好的方法 Python程序就感觉像是在读英语段落一样,尽管这个英语段落的语法要求非常严格。 Python最大的优点之一是具有伪代码的本质,它使我们在开发 Python程序时,专注的是解决问题,而不是搞明白语言本身。
(2)面向对象
Python既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。
(3)可移植性
由于 Python的开源本质,它已经被移植在许多平台上。如果小心地避免使用依赖于系统的特性,那么所有 Python程序无需修改就可以在下述任何平台上运行,这些平台包括Lnux、Windows、 FreeBSD、 Macintosh、 Solaris、OS/2、Amiga、AROS、AS/400、Beos OS/390、Z/OS、 Palm OS、QNX、VMS、 Psion、 Acorn RISC OS、VxWorks、 PlayStation、 Sharp Zaurus、Windows CE,甚至还有 PocketPC、Symbian以及 Google基于Lnux开发的Android平台。
(4)解释性
一个用编译性语言如C或C++写的程序可以从源文件(即C或C++语言)转换到一个计算机使用的语言。这个过程通过编译器和不同的标记、选项完成。当运行程序的时候,连接转载器软件把程序从硬盘复制到内存中并且运行。
而Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。
事实上,由于不再担心如何编译程序,如何确保连接转载正确的库等,这一切使得使用Python变得更加简单。由于只需要把Python程序复制到另外一台计算机上,它就可以工作了,这也使得Python程序更加易于移植。
(5)开源
Python是 FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝,阅读它的源代码,对它做改动,把它的一部分用于新的自由软件中。
FLOSS是基于一个团体分享知识的概念,这是为什么Python如此优秀的原因之一 ——它是由一群希望看到一个更加优秀的 Python的人创造并经常改进这的。
2、二、Python中的基础语法:
2.1、Python中变量在内存中的存储
2.1.1引用和对象:
对象:当创建数据对象时,在内存中会保存对象的值,这个值就是对象自己;
引用:对象保存在内存空间,外部想要使用对象的值,就需要使用引用来操作对象。内存中会保存对象引用的数量,当某个对象的引用为0时,对象会被回收。
2.1.2可变数据类型和不可变数据类型
a、数据分类:
可变数据对象:列表(list)和字典(dict)
不可变数据对象:整型(int)、浮点型(float)、字符串(string)和元组类型(tuple)
注:此处的可变和不可变,是指内存中的对象(Value)是否可以改变,对于不可变类型的对象,在对对象操作的时候,必须在内存中重新申请一块新的区域,即重新给一个新的地址用于存储;对于可变类型的对象,在对对象操作的时候,并不会重新申请新的地址,而是在该对象的地址后面继续申请即可,即address并不会改变,而是address的区域的大小会变长或变短。
不可变数据类型:对象本身的值不可变,如果改变了变量的值,相当于新建了一个对象,而对于相同值的对象,在内存中只有一个对象。
可变数据类型:允许变量的值进行改变,对于变量给值的过程中,只是改变了变量的值,而不会新建一个对象,所以可变数据类型的意思就是说对一个变量进行操作时,其值是可变的,值的变化并不会引起新建对象,即地址是不会变的,只是地址中的内容变化了或者地址得到了扩充。,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
2.1.3引用传递和值传递(函数传值)
说明:可变对象为引用传递,不可变对象为值传递
引用传递:传递列表或者字典时,如果改变引用的值,就修改了原始的对象
def check(l): print(l) print(id(l)) l.append([1, 23, 2, 3, 4]) return l l = [1, 2, 3, 4] print(check(l)) print(id(l)) ''' [1, 2, 3, 4] 2902500909320 [1, 2, 3, 4, [1, 23, 2, 3, 4]] 2902500909320 '''
值传递:当传递不可变对象时,如果改变引用变量的值,只是创建了不同的对象,原始对象并没有改变。
def check(s): print(s) print(id(s)) s = "i am test" print(id(s)) return s s = "This is a test" print(check(s)) print(s) ''' This is a test 2418424029424 2418424029488 i am test This is a test '''
2.1.4深拷贝和浅拷贝
浅拷贝:语法:copy.copy(),浅拷贝是创建了一个和原对象一样的类型,但是其内容是对原对象元素的引用。
深拷贝:语法:copy.deepcopy(),在内存中将所有的数据重新建立一份。
变量的本质:在内存中开辟了一块空间,其中存储了指定类型的数据【实体(对象)存储在堆中,变量(引用)存储在栈空间中
2.2基本数据类型
Python中常用的数据类型有:整型(int)、浮点型(float)、字符串(string)、空值(None)、布尔值(True和False)、复数、类、函数等
Python中常量的命名规则使用变量名为全大写为常量
变量的命名遵循标识符的命名规则
2.3关键字、标识符和内置函数
1、关键字:在Python中被赋予了特殊含义的英文单词
Python中的关键字的查看使用keyword模块
import keyword as keykey.kwlist
'''
['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']
'''
2、标识符的命名规则:标识符的命名构成:数字、字母、下划线,但不能以数字开头,在标识符的命名中严格区分大小写
命名规范:
Python官方:所有单词全部小写,不同单词之间使用下划线分割,普遍是用驼峰命名法(小驼峰与大驼峰)
3、内置函数:
import sysdir(sys.modules['__builin__'])
内置函数表;
内置函数 abs()dict()help()min()setattr()all()dir()hex()next()slice()any()divmod()id()object()sorted()ascii()enumerate()input()oct()staticmethod()bin()eval()int()open()str()bool()exec()isinstance()ord()sum()bytearray()filter()issubclass()pow()super()bytes()float()iter()print()tuple()callable()format()len()property()type()chr()frozenset()list()range()vars()classmethod()getattr()locals()repr()zip()compile()globals()map()reversed()import()complex()hasattr()max()round() delattr()hash()memoryview()set()
2.4Python运算符
2.4.1算术、赋值运算符:
**:求幂运算
//:整除运算或者成为地板除
%:取余运算
常用算数运算符的优先级:* > > / // % > + -
赋值运算符:=
复合运算符:+=、-= 、*= 、/=
关系比较:==、!=、>=、<=等
2.4.2逻辑运算
运算符逻辑表达式描述andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。【orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
算符描述&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。^按位异或运算符:当两对应的二进位相异时,结果为1~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1。(运算原理:计算补码,按位取反,转为原码,末尾加1)<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
# 位运算实例:x与y的数值的交换# 1、交叉赋值
x, y = y, x
# 2、第三方变量
temp = x
x = y
y = temp
# 3、异或
# 规律:一个数异或另一个数两次之后的结果为该数本身
x = x ^ y
y = x ^ y
x = x ^ y
# 4、加减法
x = x + y
y = x - y
x = x - y
2.4.3成员及身份运算:
成员运算符:in、 not in
身份运算符:is、is not
2.5Python 中的语句
2.5.1if语句
if语句在Python中的两种结构为:
# 1 if 条件表达式: 代码块 # 2 if 条件表达式: 代码块 elif 条件表达式: 代码块 # 3 if 条件表达式: 代码块 else: 代码块
2.5.2for语句
for 变量 in 数据结构:循环体
# 9*9乘法表for i in range(1,10):
for j in range(1,i + 1):
print("%dx%d=%d" % (j,i,i * j),end=" ")
print("")
2.5.3while语句
while 条件表达式:代码块
# 9*9乘法表while line < 10:
temp = 1
while temp <= line:
print("%d x %d = %d"%(temp, line, temp*line),end = " ")
temp += 1
print("")
line += 1
break:直接跳出当前循环
continue:结束当前正在执行的循环,继续下一次循环
如果大家如果在学习中遇到困难,想找一个Python学习交流环境,可以加入我们的Python学习圈,点击我加入吧,会节约很多时间,减少很多遇到的难题。
未完待续。。。
以上是 【JS】Python这几招,你还不知道吗? 的全部内容, 来源链接: utcz.com/a/95209.html