导入创建的模块并打印它

Importing a created module and printing it

我创建了一个名为 smethod.py 的模块,其中包含以下代码:(第一个 def 将混合大小写的字母变为小写,第二个变为大写)

def LWR():
    result=""
    for i in range(0,len(s)):
        value = ord(s[i])
        if value>64 and value<91:
            result+=chr(value+32)
        else:
            result+=chr(value)
    s=result
    print(s)
    return


def TTL():
    ssplit = s.split()
    small_a = ord("a") 
    small_z = ord("z")

    cap_a = ord("A")   

    delta = small_a - cap_a

    for z in ssplit :  
        if small_a <= ord(z[0]) <= small_z:
            l = chr(ord(z[0])-delta)
            new = l + z[1:]            
            print(new, end=" ") 
        else:
            print(s)
    return

然后我打开了一个新文件并做了这个:

import smethod
s = input("Enter your string")
print("The lowercase version is:" ,smethod.LWR)
print("Title version is: ",smethod.TTL)

============= RESTART: /Users/ezgibahadir/Documents/smethod2.py =============
enter your stringezgi bahadır
The lowercase version is: <function LWR at 0x1111b28c0>
Title version is:  <function TTL at 0x1111413b0>

这是什么原因?

有很多地方可以改进。

  • 你说你调用了文件 method.py,那你为什么要导入 smethod
  • 您的函数 LWR 和 TTL 不接受任何参数。都是指s,那个s从哪里来的?
  • 即使他们确实有效,你也不会打电话给他们。你需要做 method.LWR().
  • 您已声明这是 Python3,但您使用的打印功能类似于 Python2。

其他一些问题:

  • 将函数名称作为 3 个字母的大写代码并不是 python 的方式。称他们为 to_lowerto_upper 或其他名称。
  • 鉴于此过程非常常见,标准库中提供了这两个函数,您甚至不需要单独的函数。

你可以这样做:

import smethod
s = input("Enter your string")
print(f"The lowercase version is: {s.lower()}")
print(f"Title version is: {s.upper()}")

为了使用 chrord 重新创建完整功能,您应该声明如下内容:

def to_lower(s):
    # code here
    return result

然后调用它:

s = 'Hello World!'
print(to_lower(s))