【全栈之路】10 天掌握 Python 开发(3)数据类型

本书的内容完全免费,开源地址:github.com/luckrnx09/p...

基本数据类型

Python 基本数据类型包括:

  • 整数:没有小数点的数字。
  • 浮点数:带有小数点的数字。
  • 字符串:用单引号或双引号括起来的字符序列。
  • 布尔值:表示 True 或 False。
  • 空值:None。

任务

定义 5 个变量表示某人的工资条,需要包含:姓名、月份、薪资、是否全勤、所属项目组

JavaScript 实现

javascript 复制代码
let name = '张三' // string
let month = 12 // number
let salary = 10000.12 // number
let isPerfectAttendance = true // boolean
let team = null // null
console.log(typeof name) // 获取变量的类型

Python 实现

python 复制代码
name = '张三' # str
month = 12 # int
salary = 10000.12 # float
is_perfect_attendance = True # bool
team = None # None
print(type(name)) # 获取变量的类型

代码解读

  • Python 中的数字类型有两种,分别是 int 整数类型和 float 浮点数类型,而 JavaScript 中整数和浮点数都使用 number 类型存储。
  • Python 使用 None 表示空,JavaScript 使用 null 表示空。
  • Python 中没有与 JavaScript 的 undefined 类似的类型。
  • Python 中使用 type() 内置函数获取变量类型,JavaScript 中使用 typeof 关键字获取变量类型。

差异速览

类型 JavaScript Python
整数 let myInt = 10; let myInt = Number(10); my_int = 10
浮点数 let myFloat = 3.14; let myFloat = Number(3.14); my_float = 3.14
字符串 let myStr = "Hello World"; my_str = "Hello World"
布尔值 let myBool = true; let myBool = false; my_bool = True bool_val = False
空值 let myNull = null; my_none = None

字符串通常为编程语言中使用最广泛的数据类型之一,掌握它们可以让编程事半功倍。以下为 JavaScript 和 Python 中的字符串常见 API:

方法 JavaScript Python
获取长度 myStr.length len(my_str)
拼接 myStr1 + myStr2 my_str1 + my_str2
截取 myStr.slice(start, end) my_str[start:end]
查找 myStr.indexOf(substring) my_str.index(substring)
替换 myStr.replace(old, new) my_str.replace(old, new)
分割 myStr.split(separator) my_str.split(separator)
大小写转换 myStr.toUpperCase() myStr.toLowerCase() my_str.upper() my_str.lower()
反转 myStr.split('').reverse().join('') my_str[::-1]
统计子串出现次数 myStr.split(substring).length - 1 my_str.count(substring)
是否以指定字符开头 myStr.startsWith(prefix) my_str.startswith(prefix)
是否以指定字符结尾 myStr.endsWith(suffix) my_str.endswith(suffix)
删除两端的空白字符 myStr.trim() my_str.strip()
按指定宽度居中对齐 - my_str.center(width)
第一个单词首字母大写 - my_str.capitalize()
每个单词首字母大写 - my_str.title()

相关资源


基本数据类型的算术运算

Python 中的算术运算符用于执行加、减、乘和除等基础的算术运算。

任务

创建一个程序,定义两个数字类型的变量,并对它们执行各种算术运算。该程序应执行以下任务:

  1. 将两个数相加并打印和。
  2. 从第二个数中减去第一个数并打印差。
  3. 将两个数相乘并打印乘积。
  4. 将第一个数除以第二个数并打印商。
  5. 计算第一个数除以第二个数的余数并打印结果。
  6. 将第一个数的第二个数次幂并打印结果。
  7. 将第一个数自增 1 并打印更新后的值。
  8. 将第二个数自减 1 并打印更新后的值。

JavaScript 实现

javascript 复制代码
let num1 = 10;
let num2 = 5;

// 1. 相加
let sum = num1 + num2;
console.log("和:", sum);

// 2. 相减
let difference = num1 - num2;
console.log("差:", difference);

// 3. 相乘
let product = num1 * num2;
console.log("积:", product);

// 4. 相除
let quotient = num1 / num2;
console.log("商:", quotient);

// 5. 取余
let remainder = num1 % num2;
console.log("余数:", remainder);

// 6. 指数运算
let power = num1 ** num2;
console.log("幂:", power);

// 7. 自增
num1++;
console.log("自增后的 num1:", num1);

// 8. 自减
num2--;
console.log("自减后的 num2:", num2);

Python 实现

python 复制代码
num1 = 10
num2 = 5

# 1. 相加
sum = num1 + num2
print("和:", sum)

# 2. 相减
difference = num1 - num2
print("差:", difference)

# 3. 相乘
product = num1 * num2
print("积:", product)

# 4. 相除
quotient = num1 / num2
print("商:", quotient)

# 5. 取余
remainder = num1 % num2
print("余数:", remainder)

# 6. 指数运算
power = num1 ** num2
print("幂:", power)

# 7. 自增
num1 += 1
print("自增后的 num1:", num1)

# 8. 自减
num2 -= 1
print("自减后的 num2:", num2)

代码解读

  • Python 的加、减、乘、除、取余、指数运算语法与 JavaScript 一致。
  • Python 中没有 ++-- 运算符,需要使用 +=-= 对变量进行自增或自减。

差异速览

特性 JavaScript Python
相加 + +
相减 - -
相乘 * *
相除 / /
整除 - //
取余 % %
指数运算 ** **
自增 ++ +=1 += 1
自减 -- +=1 -= 1

:::danger 在 Python 中,只有 兼容的 数据类型之间才能进行运算,比如浮点数和整数运算的结果为浮点数,而字符串和数字进行运算会抛出异常。如要对数字和字符串进行运算,需先对其中一进行类型转换。 :::

相关资源


类型转换

类型转换是编程中常见的需求,Python 和 JavaScript 都提供了专门用于类型转换为方法。

任务

假设有一块硬盘的容量为 8192MB(字符串),请将这块硬盘的容量换算为 TB 单位,将换算结果保存到一个整数类型变量中。

JavaScript 实现

javascript 复制代码
let gb = '8192MB';
let tb = parseInt(gb) / 1024
let intTb = parseInt(tb)
console.log(`该硬盘容量为: ${intTb}TB`)

Python 实现

python 复制代码
gb = '8192MB'
int_tb = int(gb[:-2]) // 1024
print(f"该硬盘容量为: {int_tb}TB")

代码解读

  • Python 使用与类型同名的内置函数(如:str(some_value), bool(some_value)等)进行数据转换,JavaScript 使用以 parse 为前缀的内置函数。
  • 在 Python 中,'8192MB' 这样的字符串无法直接转换为整数或浮点数,因为它值与这两种类型不兼容,而 JavaScript 可以通过 parseInt 转换为整数。
  • Python 中可以使用字符串切片语法([start:end])获取字符串的子串。

差异速览

特性 JavaScript Python
转换为整数 parseInt(myVal)Number(myVal) int(my_val)
转换为浮点数 parseFloat(myVal)Number(myVal) float(my_val)
转换为字符串 myVal.toString()String(myVal) str(my_val)
转换为布尔值 Boolean(myVal) bool(val)
转换为数组 - list(my_val)
转换为对象 - dict(my_val)

相关资源


列表和元组

在 Python 中,数组被称之为列表,用于存储多个连续的值。

任务

定义一个人员名单,该名单包含 "张三"、"李四"、"王五"。

JavaScript 实现

javascript 复制代码
let names = [];
names.push('张三')
names.push('李四')
names.push('王五')
console.log(names)

Python 实现

python 复制代码
names = [];
names.append('张三')
names.append('李四')
names.append('王五')
print(names)

代码解读

  • Python 使用my_list.append(el) 向列表中添加元素,JavaScript 使用 myArr.push(el) 向数组中添加元素。

差异速览

特性 JavaScript Python
创建 let myArr = new Array(); let myArr = [1, 2]; let myTuple = [1, 2]; my_list = list() my_list = [1, 2] my_tuple = (1, 2)
访问 let el = myArr[index]; el = my_list[index]
添加 myArr.push(el); my_list.append(el)
长度 let length = myArr.length; length = len(my_list)
切片 let someEl = myArr.slice(start, end); some_el = my_list[start:end]
连接 let mergedArr = myArr1.concat(myArr2); merged_list = my_list1 + my_list2
复制 let newArr = [...myArr]; new_list = my_list1.copy()
反转 myArr.reverse(); my_list.reverse()
删除 myArr.splice(index, 1); del my_list[index]
求最大值 let maxVal = Math.max(...myArr); max_val = max(my_list)
求最小值 let minVal = Math.min(...myArr); min_val = min(my_list)
求和 let sumVal = myArr.reduce((a,b) => a + b, 0); sum_val = sum(my_list)
转换为元组 - my_tuple = tuple(my_list);

:::tip 元组是什么 元组可以理解为只读的数组,它在创建时确定元素个数和元素的值,一旦创建就不能被修改。 :::

相关资源


字典

字典通常用于使用特定键存储和检索数据。Python 中的字典与 JavaScript 中的对象基本等价。

任务

设计一个程序,使用字典存储和检索学生的个人信息。个人信息包括姓名、年龄和城市

JavaScript 实现

javascript 复制代码
let personalInfo = {};
 
personalInfo.name: 'luckrnx09',
personalInfo.age: 18,
personalInfo.city: '成都'

console.log(personalInfo);

Python 实现

python 复制代码
personal_info = {}

personal_info["name"] = 'luckrnx09'
personal_info["age"] = 18
personal_info["city"] = '成都'

print(personal_info)

代码解读

  • 在 Python 和 JavaScript 中,都可以使用 {} 创建一个空字典/对象。
  • 在 Python 中,只能使用方括号(my_dict[key])访问值,而 JavaScript 中,除了方括号外,还可以使用点运算符(myObj.key)访问值。

差异速览

特性 JavaScript Python
定义字典 let obj = {}; let obj = {key1: value1, key2: value2}; dict1 = {} my_dict = {"key1": value1, "key2": value2}
访问值 obj[key]; key my_dict[key]
访问值或默认值 obj[key] ?? defaultVal; my_dict.get(key, default_value)
更新值 obj[key] = newValue; my_dict[key] = newValue
合并和更新 obj={...obj,...anotherObj} my_dict.update(another_dict)
删除键值对 delete obj[key]; del my_dict[key]
检查键是否存在 key in obj; key in my_dict
获取所有键 Object.keys(obj); my_dict.keys()
获取所有值 Object.values(obj); my_dict.values()
获取键值对数目 Object.keys(obj).length; len(my_dict)

:::danger Python 中使用 {} 语法创建字典时,字典的 key 必须使用引号包裹。此外,Python 还可以通过 dict() 来创建字典,并给字典设置初始键值对,这种方式不需要使用引号将 key 进行包裹。

scss 复制代码
my_dict = dict(a=1, b=2, ...)
print(my_dict)

:::

相关资源


集合

集合是一个无序的唯一元素的集合,与 JavaScript 中的 Set 相同,常用语去重操作。

任务

将文本中的水果按照空格拆分,去除重复项并对其进行排序。

JavaScript 实现

javascript 复制代码
const text = "apple banana cherry apple banana";
const words = text.split(" ");
const uniqueWords = [...new Set(words)];
uniqueWords.sort();
console.log(uniqueWords);

Python 实现

python 复制代码
text = "apple banana cherry apple banana"
words = text.split(" ")
unique_words = set(words)
sorted_words = sorted(unique_words)
print(sorted_words)

代码解读

  • Python 使用 set() 创建集合,JavaScript 使用 new Set() 创建集合。

差异速览

特性 JavaScript Python
创建集合 let mySet = new Set() my_set = set()
添加元素 mySet.add(el) my_set.add(el)
检查大小 mySet.size len(my_set)
检查是否为空 mySet.size === 0 len(my_set) == 0
删除元素 mySet.delete(el) my_set.remove(el)
清空集合 mySet.clear() my_set.clear()
检查成员是否存在 let exist = mySet.has(el) exist = el in my_set
将集合转换为数组 let myArr = [...mySet] my_list = list(my_set)
集合的并集 - my_set.union(another_set)
集合的交集 - my_set.intersection(another_set)

相关资源

相关推荐
勿语&19 分钟前
Element-UI Plus 暗黑主题切换及自定义主题色
开发语言·javascript·ui
一路向前的月光5 小时前
Vue2中的监听和计算属性的区别
前端·javascript·vue.js
长路 ㅤ   5 小时前
vue-live2d看板娘集成方案设计使用教程
前端·javascript·vue.js·live2d
Fan_web5 小时前
jQuery——事件委托
开发语言·前端·javascript·css·jquery
Jiaberrr6 小时前
Element UI教程:如何将Radio单选框的圆框改为方框
前端·javascript·vue.js·ui·elementui
安冬的码畜日常8 小时前
【D3.js in Action 3 精译_029】3.5 给 D3 条形图加注图表标签(上)
开发语言·前端·javascript·信息可视化·数据可视化·d3.js
太阳花ˉ8 小时前
html+css+js实现step进度条效果
javascript·css·html
john_hjy9 小时前
11. 异步编程
运维·服务器·javascript
风清扬_jd9 小时前
Chromium 中JavaScript Fetch API接口c++代码实现(二)
javascript·c++·chrome