python int和str相加,python int和str相加_为什么Python允许str与int相乘? - python

假设我们定义一个函数如下:

def multiply(a, b):

return a * b

通过传递数字来调用它显然是有效的:

In [5]: multiply(2,3)

Out[5]: 6

但是,这(令人惊讶地)可以很好地了解Python是一种强类型的语言:

In [6]: multiply('2', 3)

Out[6]: '222'

或这个

In [7]: multiply(3, '2')

Out[7]: '222'

隐式类型转换让我非常害怕。 str类型设计决策背后的原理是什么?另一方面,在F#中,它是不允许的:

- '3' * 2;;

'3' * 2;;

------^

/Users/Pac/stdin(14,7): error FS0001: The type 'int' does not match the type 'char'

参考方案

没有进行类型转换,但是字符串类型具有许多操作,这些操作提供了有用的快捷方式,当您考虑它时,它们是很合逻辑的:

乘以* =复制为'abcd ' * 4-> 'abcd abcd abcd abcd '

添加+ =串联,这样'abcd' + 'efg'-> 'abcdefg'但'abcd' + 3-> TypeError: cannot concatenate 'str' and 'int' objects

找出任何给定类型可用的操作的技巧,除了阅读手册dir(x)和help(x)之外,其中x是该类型的实例,因此:

dir('a')

__add__, __class__, __contains__, __delattr__, __doc__, __eq__, __format__,

__ge__, __getattribute__, __getitem__, __getnewargs__, __getslice__, __gt__,

__hash__, __init__, __le__, __len__, __lt__, __mod__, __mul__, __ne__, __new__,

__reduce__, __reduce_ex__, __repr__, __rmod__, __rmul__, __setattr__,

__sizeof__, __str__, __subclasshook__, _formatter_field_name_split, _formatter_parser,

capitalize, center, count, decode, encode, endswith, expandtabs, find, format, index,

isalnum, isalpha, isdigit, islower, isspace, istitle, isupper, join, ljust,

lower, lstrip, partition, replace, rfind, rindex, rjust, rpartition, rsplit, rstrip,

split, splitlines, startswith, strip, swapcase, title, translate, upper, zfill

如您所见,其中包含用于加法和乘法的运算符__add__和__mul__。

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值