Python 上限法不适用于';没有道理

Python 上限法不适用于';没有道理,python,Python,代码: def solve_the_input(port): port = hex(int(port)) split_result = port.split("0x") split_port = split_result[1] print 'input port is ',split_port split_port.upper() print 'input port is ',split_port return split_port if

代码

def solve_the_input(port):
    port = hex(int(port))
    split_result = port.split("0x")
    split_port = split_result[1]
    print 'input port is ',split_port
    split_port.upper()
    print 'input port is ',split_port
    return split_port

if __name__ == "__main__":
    if len(sys.argv) == 1:
        print "please input a port"
    else:
        port = solve_the_input(sys.argv[1])
input port is  a558
input port is  a558
input port is  a558
input port is  A558
输入

python test.py 42328
实际产出

def solve_the_input(port):
    port = hex(int(port))
    split_result = port.split("0x")
    split_port = split_result[1]
    print 'input port is ',split_port
    split_port.upper()
    print 'input port is ',split_port
    return split_port

if __name__ == "__main__":
    if len(sys.argv) == 1:
        print "please input a port"
    else:
        port = solve_the_input(sys.argv[1])
input port is  a558
input port is  a558
input port is  a558
input port is  A558
预期产出

def solve_the_input(port):
    port = hex(int(port))
    split_result = port.split("0x")
    split_port = split_result[1]
    print 'input port is ',split_port
    split_port.upper()
    print 'input port is ',split_port
    return split_port

if __name__ == "__main__":
    if len(sys.argv) == 1:
        print "please input a port"
    else:
        port = solve_the_input(sys.argv[1])
input port is  a558
input port is  a558
input port is  a558
input port is  A558
我不知道为什么upper()方法不能按预期工作。

upper方法返回新的大写字符串。所以使用

split_port = split_result[1].upper()
upper方法以大写形式返回新字符串。所以使用

split_port = split_result[1].upper()
几点

  • split\u port.upper()
    return未分配回
    split\u port
  • 无需在
    '0x'
    上拆分。您可以改用
    replace
    功能。就不会那么复杂了
带有替换功能的代码:

import sys
def solve_the_input(port):
    port = hex(int(port))
    result = port.replace("0x",'')
    print 'input port is ',result
    result = result.upper()
    print 'input port is ',result
    return result

if __name__ == "__main__":
   if len(sys.argv) == 1:
       print "please input a port"
   else :
       port = solve_the_input(sys.argv[1])
C:\Users\dinesh_pundkar\Desktop>python c.py 1235
input port is  4d3
input port is  4D3

C:\Users\dinesh_pundkar\Desktop>
输出:

import sys
def solve_the_input(port):
    port = hex(int(port))
    result = port.replace("0x",'')
    print 'input port is ',result
    result = result.upper()
    print 'input port is ',result
    return result

if __name__ == "__main__":
   if len(sys.argv) == 1:
       print "please input a port"
   else :
       port = solve_the_input(sys.argv[1])
C:\Users\dinesh_pundkar\Desktop>python c.py 1235
input port is  4d3
input port is  4D3

C:\Users\dinesh_pundkar\Desktop>
几点

  • split\u port.upper()
    return未分配回
    split\u port
  • 无需在
    '0x'
    上拆分。您可以改用
    replace
    功能。就不会那么复杂了
带有替换功能的代码:

import sys
def solve_the_input(port):
    port = hex(int(port))
    result = port.replace("0x",'')
    print 'input port is ',result
    result = result.upper()
    print 'input port is ',result
    return result

if __name__ == "__main__":
   if len(sys.argv) == 1:
       print "please input a port"
   else :
       port = solve_the_input(sys.argv[1])
C:\Users\dinesh_pundkar\Desktop>python c.py 1235
input port is  4d3
input port is  4D3

C:\Users\dinesh_pundkar\Desktop>
输出:

import sys
def solve_the_input(port):
    port = hex(int(port))
    result = port.replace("0x",'')
    print 'input port is ',result
    result = result.upper()
    print 'input port is ',result
    return result

if __name__ == "__main__":
   if len(sys.argv) == 1:
       print "please input a port"
   else :
       port = solve_the_input(sys.argv[1])
C:\Users\dinesh_pundkar\Desktop>python c.py 1235
input port is  4d3
input port is  4D3

C:\Users\dinesh_pundkar\Desktop>

返回新字符串的上限方法,但需要存储该字符串

split_port = split_result[1].upper()

返回新字符串的上限方法,但需要存储该字符串

split_port = split_result[1].upper()

python的基本规则:字符串方法不改变字符串-它们不能改变,因为字符串是不可变的(只读的)-所以它们总是返回一个新的字符串对象。python的基本规则:字符串方法不改变字符串-它们不能改变,因为字符串是不可变的(只读的)-所以它们总是返回一个新的字符串对象。