📜  海绵宝宝模拟文本生成器 - Python

📅  最后修改于: 2022-05-13 01:54:42.559000             🧑  作者: Mango

海绵宝宝模拟文本生成器 - Python

海绵宝宝模拟文本 (spongemock) 是一种字母以大写和小写随机书写的写作风格。它在互联网社区中用于模拟某些东西。该文本起源于海绵宝宝卡通系列的模因。
例子 :

Input : The quick brown fox jumps over the lazy dog.
Output : tHE QuiCK BrOWN fOX juMps over tHe lAzY dOG.

Input : This sentence is to test the function.
Output : This seNtENce is TO TeST THE funcTiON.

算法 :

  1. 按字符处理输入字符串。
  2. 使用 isalpha() 方法检查字符是否为字母。
  3. 使用 random.random() 方法生成 0 到 1 之间的随机数。
  4. 如果生成的数字大于 0.5,则使用 upper() 方法将字符更改为大写。
  5. 如果生成的数字小于或等于 0.5,则使用 lower() 方法将字符更改为小写。

Python3
# import the random library
import random
 
# Function to convert into spongemock
def spongemock(input_text):
     
    # variable declaration for the output text
    output_text = ""
     
    # check the cases for every individual character
    for char in input_text:
         
        # check if the character is an alphabet
        if char.isalpha():
             
            # convert to upper case
            if random.random() > 0.5:
                output_text += char.upper()
                 
            # convert to lower case
            else:
                output_text += char.lower()
         
        # if character is not and alphabet
        # add it as it is
        else:
            output_text += char
     
    # return the output_text
    return output_text
     
# Driver code
if __name__=="__main__":
    input_text1 = "The quick brown fox jumps over the lazy dog."
    input_text2 = "This sentence is to test the function."
    print(spongemock(input_text1))
    print(spongemock(input_text2))


Python3
# import the random library
import random
 
def skewupper():
    low = 0
    high = 100
    mode = 80
    return random.triangular(low, high, mode)
 
def skewlower():
    low = 0
    high = 100
    mode = 20
    return random.triangular(low, high, mode)
     
# Function to convert into spongemock
# with more upper case characters
def spongemockupper(input_text):
    output_text = ""
    for char in input_text:
        if char.isalpha():
            if skewupper() > 50:
                output_text += char.upper()
            else:
                output_text += char.lower()
        else:
            output_text += char
    return output_text
 
# Function to convert into spongemock
# with more lower case characters
def spongemocklower(input_text):
    output_text = ""
    for char in input_text:
        if char.isalpha():
            if skewlower() > 50:
                output_text += char.upper()
            else:
                output_text += char.lower()
        else:
            output_text += char
    return output_text
 
# Driver code
if __name__=="__main__":
    input_text1 = "The quick brown fox jumps over the lazy dog."
    print("Spongemock text with more upper case characters :\n" +
                                    spongemockupper(input_text1))
 
    print("\nSpongemock text with more lower case characters :\n" +
                                      spongemocklower(input_text1))


输出 :

tHe qUICk BrOWn fox jUMPs oVEr thE lAZy dOG.
THIS seNTEncE IS tO TesT tHe FuNcTIOn.

如果大小写字符,上面的代码生成等量的文本。如果我们想使平衡偏向一侧,我们可以将 random.random() 方法与 random.triangular() 方法切换。

Python3

# import the random library
import random
 
def skewupper():
    low = 0
    high = 100
    mode = 80
    return random.triangular(low, high, mode)
 
def skewlower():
    low = 0
    high = 100
    mode = 20
    return random.triangular(low, high, mode)
     
# Function to convert into spongemock
# with more upper case characters
def spongemockupper(input_text):
    output_text = ""
    for char in input_text:
        if char.isalpha():
            if skewupper() > 50:
                output_text += char.upper()
            else:
                output_text += char.lower()
        else:
            output_text += char
    return output_text
 
# Function to convert into spongemock
# with more lower case characters
def spongemocklower(input_text):
    output_text = ""
    for char in input_text:
        if char.isalpha():
            if skewlower() > 50:
                output_text += char.upper()
            else:
                output_text += char.lower()
        else:
            output_text += char
    return output_text
 
# Driver code
if __name__=="__main__":
    input_text1 = "The quick brown fox jumps over the lazy dog."
    print("Spongemock text with more upper case characters :\n" +
                                    spongemockupper(input_text1))
 
    print("\nSpongemock text with more lower case characters :\n" +
                                      spongemocklower(input_text1))

输出 :

Spongemock text with more upper case characters :
ThE qUICK BROwN FOX jUMPs OVeR THE lazy DoG.

Spongemock text with more lower case characters :
The qUick BrOwn fOX JuMPs oveR the LaZy DOg.