
想知道答案里加不加单引号有区别吗,是不是都是对的
写代码的时候要加的,因为整数和字符串的比较方法不同
整数直接对比大小,而字符串则是逐位对比大小
所以输出的最小元素是不同的。
但是你问答案里面的写法,是可以不加的,因为仅输出一个字符串的时候,引号会被省略,所以“看起来”就是一个没有引号的整数
表达式 min(['11,2,"3']) 的值为 '11,2,"3',因为该表达式将字符串 '11,2,"3' 视为一个元素,而不是将其拆分为三个元素。在 Python 中,单引号和双引号都可以用来表示字符串,因此在这种情况下,加不加单引号都不会影响答案。
min(['11', '2', '3']) 的答案是'11'
min()的作用就是取列表里的最小值,也就是['11', '2', '3']里的最小值。你一定奇怪为什么'11'是最小值?因为列表的数据类型都是字符型,而不是整数,对于字符‘11’来说,它的值是最小的。如果列表是[11,2,3],这个时候数据类型是整数,那么2就是最小值。
加了单引号就是字符串,字符串比较大小是从头到尾依次比较,那最小的是11
不加是int,最小的是2
需要加单引号,不加会报错。你题目min函数返回得是字符串类型的,不加单引号11就是整数类型了
在python中,字符串比较大小的规则:通过内置函数 ord() 获得每个字符的 Unicode 编码; 在多个字符的情况下,Python会根据字符串的顺序,一个一个向下进行比较(如果第一位的ord()值比其他的大,则这个数就是最大的;反之则最小。如果第一位的ord()值相同,则会后面逐级比较)。而数字比较大小则是按照数字大小来比较。
print( min(['11','2','3']) ) #结果是 '11'
for i in ['11','2','3']:
if len(i)>1:
print( f'{i}的ord值是:',ord(i[0]) )
else:
print(f'{i}的ord值是:', ord(i))
print( min([11,2,3]) ) #结果是 2
我可以回答这个问题。
在Python中需要注意的格式细节包括缩进、命名规范等。具体实例如下:
if x > y:
print("x is greater than y")
else:
print("y is greater than x")
# 变量名采用小写字母或下划线的组合
my_name = "Alice"
age = 18
# 函数名采用小写字母或下划线的组合
def factorize(number):
...
# 类名应该是以大写字母开头的单词,多个单词采用驼峰命名法
class MyClass:
...
除此之外,还有一些其他的细节需要注意,比如代码风格、注释等。Python社区有一份公认的编码风格指南PEP 8,建议参考并统一风格。
参考资料: