Python 和 JavaScript 对照学习:字符串方法、运算符及其规则

news2026/5/15 19:21:29
Python和JavaScript字符串方法及运算符对照字符串方法大小写转换Python用str.upper()JS用str.toUpperCase()查找替换Python的replace()默认全局替换JS需正则/g或replaceAll()切片操作Python支持str[start:end:step]JS用slice(start,end)包含检查Python用in运算符JS用includes()方法运算符差异比较运算Python的严格类型检查JS会隐式转换除法Python的/返回浮点数//整除JS只有/自增Python不支持/--JS支持逻辑运算Python用and/orJS用/||类型检查Python用is/is notJS用/!关键记忆点JS存在隐式类型转换风险推荐使用Python的字符串方法更丰富如strip()支持指定字符两种语言的运算符优先级相似但符号表示不同Python和JavaScript对照学习Python和JavaScript的字符串方法以下是Python和JavaScript常用字符串方法的对照表。它对比了两者在语法、功能、返回值和典型示例上的异同帮助你对照学习。Python与JavaScript字符串方法对照表功能分类Python 方法 (示例)JavaScript 方法 (示例)主要差异与注意点大小写转换str.upper()str.lower()str.toUpperCase()str.toLowerCase()语法不同Python 是方法如s.upper()JS 是函数式方法如s.toUpperCase()。str.capitalize()无直接对应Python 将首字母大写其余小写。JS 需自定义或组合方法实现。str.title()无直接对应Python 将每个单词首字母大写。查找与判断str.find(sub)返回索引找不到返回-1str.indexOf(sub)返回索引找不到返回-1功能相似但 JS 还有lastIndexOf()从右查找。str.index(sub)找不到抛出ValueErrorstr.indexOf(sub)找不到返回-1Pythonindex()更严格JS 无直接等效异常版。str.startswith(prefix)返回boolstr.startsWith(prefix)返回bool语法相同功能一致。str.endswith(suffix)返回boolstr.endsWith(suffix)返回bool同上。内容检查str.isalpha()str.isdigit()str.isalnum()无直接方法JS 通常用正则表达式实现如/^\d$/。str.isspace()无直接方法JS 需正则或遍历判断。修剪空白str.strip()移除首尾指定字符默认空白str.trim()只能移除空白不能指定其他字符功能不同Python 更灵活可指定删除字符集。str.lstrip(),str.rstrip()str.trimStart(),str.trimEnd()左右修剪JS 版本较新ES2019。拆分与连接str.split(sep)返回列表str.split(sep)返回数组行为相似但 JS 可带限制参数split(sep, limit)。sep.join(iterable)如-.join([a,b])arr.join(sep)如[a,b].join(-)调用对象相反Python 连接符调用JS 数组调用。替换str.replace(old, new)默认替换所有出现str.replace(old, new)默认只替换第一个核心差异JS 需用正则/old/g实现全局替换。str.replace(old, new, count)可指定替换次数str.replaceAll(old, new)ES2021 引入全部替换Pythoncount参数更灵活。切片与提取str[start:end:step]切片语法返回新字符串str.slice(start, end)或str.substring(start, end)Python 切片功能更强大支持步长、负数索引。str[start:end]与slice类似str.substr(start, length)已弃用建议用slice建议 JS 用slice保持与 Python 相似逻辑。填充与对齐str.center(width[, fillchar])无直接方法可用padStart()/padEnd()组合模拟但复杂。str.ljust(width[, fillchar])str.rjust(width[, fillchar])str.padEnd(targetLength[, padString])str.padStart(targetLength[, padString])功能相似但参数名不同ljust对应padEnd注意对应关系。检查包含sub in str返回boolstr.includes(sub)返回boolPython 使用成员运算符inJS 用方法。计数str.count(sub)返回子串出现次数无直接方法JS 可用match()配合正则或split().length-1变通。格式化f{name}{value}{}{}.format(name, value)模板字符串${name}${value}字符串拼接Python 有多种格式化方式JS 模板字符串功能类似 f-string。关键记忆点快速对照大小写方法Python 是upper()JS 是toUpperCase()记住 JS 带to前缀全局替换Pythonreplace()默认全局JS 默认只替换第一个需正则/g或replaceAll连接字符串Python-.join(list)vs JSlist.join(-)连接符与数组谁调用谁包含检查Pythonsub in strvs JSstr.includes(sub)修剪Pythonstrip()可删任意字符JStrim()只能删空白切片Python[start:end:step]更强大JS 只有slice(start, end)类似Python和JavaScript的运算符及其规则以下是Python和JavaScript运算符的对照表涵盖算术、比较、逻辑、赋值、位运算等主要类别重点标注两者在行为、类型转换和可用性上的核心差异。Python与JavaScript运算符对照表类别运算符Python 行为JavaScript 行为关键差异与注意点算术数值加法字符串拼接数值加法字符串拼接两者类似但JS会自动类型转换如1 111-*/标准算术运算标准算术运算JS中非数值会尝试转为数值如5 - 32/结果为浮点数如5/22.5结果为浮点数如5/22.5一致//整除向下取整如5//22❌ 无JS可用Math.floor(5/2)模拟%取余结果符号与除数相同取余结果符号与被除数相同符号规则不同-5 % 2→ Python:1JS:-1**幂运算如2**38幂运算ES2016如2**38相同--❌ 无✅ 自增/自减前置/后置Python不支持自增/自减运算符比较值比较不转换类型松散相等会类型转换⚠️重大差异JS的会转换类型Python不会!值不等不转换类型松散不等会类型转换同上❌ 无严格相等不转换类型JS特有推荐使用!❌ 无严格不等不转换类型JS特有值比较不同类型报错值比较会类型转换JS可比较字符串与数字如5 3true逻辑and/or/not返回操作数本身短路求值使用/||/!返回操作数本身关键字vs符号短路行为相似示例0 and 2→01 or 0→10 2→01 || 0→1相同短路逻辑赋值-等标准赋值及复合赋值标准赋值及复合赋值基本一致链式赋值a b 1✅a b 1✅均支持解包赋值a, b 1, 2✅[a, b] [1, 2]✅Python更简洁JS需数组/对象解构位运算|^~整数位运算32位有符号整数位运算JS先将操作数转为32位有符号整数❌ 无无符号右移补0JS特有身份is/is not比较内存地址是否同一对象❌ 无Python特有JS用比较引用类型地址无❌typeof返回变量类型字符串无❌instanceof检查原型链三元x if condition else y✅ 表达式形式condition ? x : y✅语法不同功能相同特殊无❌??(空值合并)仅当左值为null/undefined取右值无❌?.(可选链)安全访问深层属性in检查序列/字典是否包含键检查对象是否有该属性Python用于序列/映射JS用于对象/数组not in反向in❌ 无直接对应Python特有关键差异速记面试/刷题重点除法符号规则Python//整除JS 无取模%结果符号Python 与除数同号JS 与被除数同号相等比较最容易踩坑Python不转换类型1 1→FalseJS会转换类型1 1→True推荐始终用逻辑运算符Python 用and/or/not单词JS 用/||/!符号两者都返回操作数本身不强制转布尔自增/自减Python无/--需写a 1JS支持i/i--类型转换Python比较不同类型通常报错如1 a→TypeErrorJS会隐式转换如1 a→false因为a转NaN身份比较 vs 相等比较Python 用is检查同一对象检查值相等JS 中对于引用类型比较的是地址类似 Python 的is会类型转换示例对照同一逻辑的两种写法场景PythonJavaScript整除quotient 7 // 3# 2let quotient Math.floor(7 / 3);严格相等if a b:if (a b) {逻辑与返回原值result 0 and 5# 0let result 0 5;// 0三元表达式age 18 if adult else 12let age adult ? 18 : 12;自增count 1count;检查属性if key in dict:if (key in obj) {建议学习路线先掌握 Python类型严格逻辑清晰适合建立正确编程思维再转 JavaScript重点关注其隐式转换规则和的使用练习题推荐比较0 false、null undefined、[] ![]在两种语言中的结果在 Python 中逻辑运算符的优先级从高到低为notandor。优先级运算符说明最高not逻辑非中等and逻辑与最低or逻辑或

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2520144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…