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

本文详细介绍了Python中的基本数据类型(数字、字符串、布尔类型和空值)、列表、字典、元组,以及JavaScript的相似概念,如基本数据类型、数组、对象。同时涵盖了非基本数据类型如列表、字典和集合在两种语言中的操作方法。
摘要由CSDN通过智能技术生成

目录

基本数据类型

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() 函数 | 菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值