H5W3
当前位置:H5W3 > JavaScript > 正文

【JS】Python这几招,你还不知道吗?

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

【JS】Python这几招,你还不知道吗?

一、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 key
key.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 sys
dir(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学习圈,点击我加入吧,会节约很多时间,减少很多遇到的难题。

未完待续。。。

本文地址:H5W3 » 【JS】Python这几招,你还不知道吗?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址