栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python和javascript的区别(从基本数据类型到非基本数据类型、代码块等)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python和javascript的区别(从基本数据类型到非基本数据类型、代码块等)

目录

基本数据类型

python

Javascript

 非基本数据类型

Python

列表list

字典dict

元组tuple

Javascript

数组Array

对象(Object)

注释

python

javascript

代码块

python

Javascript


基本数据类型

python

Python的数据类型有数字(Number)、字符串(String)、布尔类型

数字类型中有int类型、long类型、float类型、complex类型(复数)

对于字符串类型,需要用单引号或者双引号把它引起来

可以采用方括号来选取其中某一个字符,或者进行截取

例如var2 = "Python Runoob"

var2[0]  P    
var2[1:5]  ytho   (:左侧数字代表开始字母所在的位置,:右侧数字代表在在这个索引前结束)

        如果只有单侧有数字,则表示另一边为0,或者到末尾

        字符串最后一个字符的索引为-1 

字符串的连接采用+

使用特殊字符时,python用反斜杠转义字符。

 对于布尔类型,值有两个:True和False

空值使用None


Javascript

采用typeof操作符来检验变量的类型

Javascript的数据类型有数字(Number)、字符串(String)、布尔类型(Boolean),Undefined,Symbol

对于字符串类型,需要用单引号或者双引号把它引起来

字符串的连接采用+,还有concat()方法和join()方法

 对于布尔类型,值有两个:true和false

空值为null,用来定义空指针,它是Object(对象)的一个特殊值

未定义为Undefined,Undefined是一种特殊的数据类型,当我们声明一个变量,却未给这个变量赋值时,它的数据类型是Undefined

Symbol是ECMAscript6引入的一个新的数据类型,Symbol类型的值采用Symbol()函数生成


 非基本数据类型

Python

Python的非基本数据类型有列表(list)、字典(dict)、集合(set)

列表list

列表list使用方括号[]表示,列表的数据项不需要相同的数据类型

  • 列表的初始化方式:
list1 = []

list1 = list()
  • 增:append()方法
  • 删:利用索引del,采用pop()方法
  • 改:利用索引改
  • 查:利用索引,或直接打印

关于列表的增删改查,我的另一篇文章中有详细介绍

字典dict

字典dict使用花括号{}表示,也可以存储任意类型对象,键与值之间用冒号:分割,键值对之间用逗号,分隔

  • 列表的初始化方式:
d = dict()

d = {}
  • 增:字典没有append()方法
dic1  = {'name':'shuai','age':19,'sex':'man'}
dic1['height']=185   #没有键值对,添加
dic1['age'] = 16    #有这个键就覆盖
dic1.setdefault('weght',150)  # 有键值对,不做任何改变,没有才添加
  •  删:pop()方法,使用key删除
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic1.pop("hobby")
'lp'                      # 会有返回值
>>> print(dic1)
{'name': 'zuowei', 'age': 18}
  • 改:直接对键进行赋值
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic1["sex"] = "男"
>>> print(dic1)
{'name': 'zuowei', 'age': 18, 'hobby': 'lp', 'sex': '男'}
>>> dic1["age"] = 8           # 有则改,无则加
>>> print(dic1)
{'name': 'zuowei', 'age': 8, 'hobby': 'lp', 'sex': '男'}
  • 查:

        根据key查询

>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1["name"])
zuowei
>>> print(dic1["hobby"])
lp

        采用get()方法

>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1["name"])
zuowei
>>> print(dic1["hobby"])
lp
>>> dic1.get("name")
'zuowei'
>>> dic1.get("age")
18

        for循环

>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> for k, v in dic1.items():
...     print(k, v)
...
name zuowei
age 18
hobby lp

集合set

集合set也使用大括号{}表示,表示一个无序不重复元素集合

  • 初始化
 #初始化空集合
 emptySet=set()

 注意:花括号{}只能用于初始化字典,不可以用于初始化集合

  • 增:
    s = {'A', 'B', 'A', 'B'}

    s.add('c')  # 重复的内容不会被添加到set集合中
    print(s)

    s.update(['C', 'D', 'E'])  # 迭代添加
    print(s)

  • 删:
    s = {'A', 'B', 'C', 'D'}
    item = s.pop()  # 随机删除一个元素后,返回被删除的值给item
    print(item)
    print(s)

    s.remove('A')  # 直接删除指定的值
    print(s)
    s.clear()  # 清空set集合,需要注意的是,如果set为空,打印出来则是set(),因为要区分dict
    print(s)

  • 改:

由于集合set中没有索引,所以我们采用删除指定元素,再添加元素的方式来更改

    # set集合中的数据没有索引. 也没有办法去定位一个元素. 所以没有办法直接修改.
    # 我们可以采用先删除后添加的方式来完成修改操作
    s = {'A', 'B', 'C', 'D'}
    # 把A改为E
    s.remove('A')
    s.add('E')
    print(s)
  •  查:

由于set是一个可迭代对象,可以通过for循环来进行遍历查询

    # set 是一个可迭代对象,可通过for循环进行遍历查询
    s = {'A', 'B', 'C', 'D'}
    for i in s:
        print(i)

集合set还可以进行并、交、差等操作。

元组tuple

还有一种数据类型元组tuple,

使用小括号()来表示,

与列表类似,但是区别在于元组的元素不可以修改


Javascript

Javascript的非基本数据类型有数组(Array)、对象(Object)、集合(Set)

数组Array
  • 初始化
  1. 指定长度的初始化
    var vArray = new Array(8);
  2. 不指定长度的初始化
    var vArray = new Array();
    vArray .push(1);
    
    
    var vArray = [];
    vArray .push(1);

    3.直接对数组进行赋值

    var vArray = ['1','2','3'];
  • 增:

push()方法,可以把一个或多个元素添加到数组尾部,并返回修改后数组的长度

var arr = [];
var len = arr.push(1);
console.log(arr); // [1]
console.log(len); // 1
len = arr.push(2,3);
console.log(arr); // [1,2,3]
console.log(len); // 3

unshift()方法,可以把一个或多个元素添加到数组开头,并返回修改后数组的长度

var len = arr.unshift(0);
console.log(arr); // [0, 1, 2, 3]
console.log(len); // 4
len = arr.unshift(-2,-1);
console.log(arr);  // [-2, -1, 0, 1, 2, 3]
console.log(len);  // 6
  • 删:

pop()方法用于删除数组末尾的元素

var arr = [1,2,3];
console.log(arr.pop()) //3
console.log(arr)  //1 2

 shift()方法用于删除数组首部的元素

var arr = [1,2,3];
console.log(arr.shift()) //1
console.log(arr)  //2 3

slice()方法用于截取数组的一部分,并返回该数组的一部分

var arr = [1,2,3,4,5];
console.log(arr.slice(1,5)) //[2, 3, 4, 5]
var arr = [1,2,3,4,5];
console.log(arr.slice(-3)) //[3, 4, 5]
  •  改

splice()方法用于删除/添加数组中的元素,(要删除的索引位置,删除的数量,要添加的元素)

添加:

var arr = [1,2,3];
arr.splice(3,0,4) //从索引3开始删除0个添加数字4
console.log(arr); //1 2 3 4 

 删除:

var arr = [1,2,3];
arr.splice(1,1)
console.log(arr);

 更改:

var arr = [1,2,3,5,6,7];
arr.splice(2,2,8)
console.log(arr); //[1, 2, 8, 6, 7]

  •  查

 indexof()可以返回元素首次出现的索引值

 lastIndexof()返回元素最后出现的索引值

var arr = [1,2,3,5,6,7];
console.log(arr.indexOf(6)) //4 返回索引位置。
console.log(arr.indexOf(8)) //如果是数组中没有的元素,返回-1
var arr = [1, 2, 2, 3, 3, 4,4];
console.log(arr.lastIndexOf(3)) //4 返回索引位置。
console.log(arr.lastIndexOf(8)) //-1

对象(Object)
  • 初始化
// 简写写法 推荐 
let obj1 = {}
let obj2 = {name: 'sanshiliu', age: '36'}

// 正统写法
let obj3 = new Object()
let obj4 = new Object({name: 'sanshiliu', age: '36'})

如果没有这个键,则增,否则就是改

let obj6 = {name: 'sanshiliu', age: '36'}


// 中括号里面的字符串做键值
obj6['school'] = 'haerbingfoxueyuan'

// 点语法
obj6.gender = 'man'

// 变量的方式,
let x = 'city'
// 变量是个字符串,如果不是,那么会自动的转换成字符串
obj6[x] = 'china'
console.log(obj6) // {name: "sanshiliu", age: "36", school: "haerbingfoxueyuan", gender: "man", city: "china"}

//记住对象的键一定是 String 或 Symbol 类型
console.log(Object.keys(obj6)) // ["name", "age", "school", "gender", "city"]

// 基于变量的方式 的新的对象声明方式
let y = 'name'
let obj7 = {
  [y]: 'sanshiliu'
}
console.log(obj7) // { name: "sanshiliu" }


obj7['name'] = 'qishiqi'
console.log(obj7) // { name: "qishiqi" }

// 批量 增 / 改
Object.assign(obj7, {name: 'bashiba', height: '170'})
console.log(obj7) //  {height: "170", name: "bashiba"}

可以采用关键字delete删除(该键值对不存在了)

或者将该键下的值定义为undefined(该键存在,值未定义)

let obj8 = {name: 'sanshiliu', age: '36'}

// delete 操作符
delete obj8["name"] // 或者  delete obj8.name

// 置为 undefined
obj8.age = undefined

let obj9 = {name: 'sanshiliu', age: '36'}
delete obj9["name"] 
obj9.age = undefined
console.log(obj9) // {age: undefined}

// 不含属性名 
let ifExistName =  "name" in obj9
console.log(ifExistName) // false

// 含有属性名 但是值 为 undefined
let ifExistAge =  "age" in obj9
console.log(ifExistAge) // true ,不过此时的 age 属性值是 undefined

let ifExistAgeAndUndefined = 'age' in obj9 && obj9.age === undefined
console.log(ifExistAgeAndUndefined) //true

// 不能使用 obj.xxx === undefined 的方式去断定 'xxx' 是否为 obj 的属性
console.log (obj9.abc === undefined) // 当属性值不存在时,依旧返回 true

let obj10 = {name: 'sanshiliu', age: '36'}

// 某个属性
console.log(obj10.name) // 'sanshiliu'
console.log(obj10['name']) // 'sanshiliu'
console.log(obj10.abc) // abc 属性不存在 返回 undefined

// 对象的所有自有属性的属性名
console.log(Object.keys(obj10)) //["name", "age"]

// 对象的所有自有属性的属性值
console.log(Object.values(obj10)) // ["sanshiliu", "36"]

// 查对象的所有属性,包括自有属性和共有属性(原型)
console.dir(obj10) // 展示出是一个对象,略(浏览器控制台查看)

注释 python

使用#单行注释

使用三个双引号""" """作为多行注释

javascript

使用//单行注释

使用多行注释

代码块 python

使用缩进

每条语句都需要换行

Javascript

使用花括号括起来,

每条语句最后采用分号;结束

代码举例中有参考其他博客,已在下面列举,感谢分享。

欢迎交流、指正!

参考博客:

一文读懂 Javascript 和 Python 九大语义区别_CSDN资讯-CSDN博客

JS数据类型(基本数据类型+引用类型)

python 的dict的append()? - 小小喽啰 - 博客园

python 字典(dict)增删改查及方法_左魏-CSDN博客_python字典增删改查

Javascript 对象的增删改查_sanshiliuxiao的博客-CSDN博客_javascript对象增删改查

​​​​​​https://www.jb51.net/article/121651.htm

​​​​​​JS(一)[数组的增删改查]_不染i的博客-CSDN博客

JS中数组初始化以及赋值 - 蓝盔扶桑花 - 博客园

python学习之集合(set) - 奔腾的小河 - 博客园


python set集合 - 大胖猴 - 博客园

Python3.x中set()集合的使用方法_jerrygaoling的博客-CSDN博客_python set初始化

Python笔记·第六章——集合 (set) 的增删改查及 copy()方法

Python --基础数据类型(set集合的增删改查及其他相关操作)_DevilLin的博客-CSDN博客

Python 字典初始化dict()和{} - 泉水叮~咚 - 博客园

Python set() 函数 | 菜鸟教程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号