海绵宝宝模拟文本生成器 - 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.
算法 :
- 按字符处理输入字符串。
- 使用 isalpha() 方法检查字符是否为字母。
- 使用 random.random() 方法生成 0 到 1 之间的随机数。
- 如果生成的数字大于 0.5,则使用 upper() 方法将字符更改为大写。
- 如果生成的数字小于或等于 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.