Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/blog.zhujinhui.net/wp-includes/functions.php on line 6114

Notice: 函数 _load_textdomain_just_in_time 的调用方法不正确twentyseventeen 域的翻译加载触发过早。这通常表示插件或主题中的某些代码运行过早。翻译应在 init 操作或之后加载。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 6.7.0 版本添加的。) in /var/www/blog.zhujinhui.net/wp-includes/functions.php on line 6114
疯狂星期四如何隐晦地向朋友暗示“KFCV50” – 煅魂-JeffreyChu的修炼屋

疯狂星期四如何隐晦地向朋友暗示“KFCV50”

疯狂星期四快到了,看看普通人和Python程序员是如何向朋友暗示“KFCV50”

普通人暗示

程序员暗示

普通打印版

print("KFCV50")
# 输出:KFCV50

Unicode版

# 暗示文
s = "\u004B\u0046\u0043\u0056\u0035\u0030"
print("Unicode转字符串:", s)
# Unicode转字符串: KFCV50

ASCII版

def ascii_to_string(ascii_codes):
    return ''.join(chr(code) for code in ascii_codes)

# 暗示文
codes = [75, 70, 67, 86, 53, 48]
output_string = ascii_to_string(codes)
print("ASCII转字符串:", output_string)
# 输出: KFCV50

Base64版

import base64

# 暗示文
string = "S0ZDVjUw"
# 解码
decrypted_string = base64.b64decode(string).decode()
print("解密后的字符串:", decrypted_string)
# 解码后的字符串: KFCV50

二进制版

def binary_to_string(binary_str):
    # 确保输入的二进制字符串长度是8的倍数
    if len(binary_str) % 8 != 0:
        raise ValueError("The length of the binary string should be a multiple of 8.")
    # 将二进制字符串按每8位分割
    byte_chunks = [binary_str[i:i + 8] for i in range(0, len(binary_str), 8)]
    # 将每个8位二进制数转换为十进制,然后转换为字符
    characters = [chr(int(byte, 2)) for byte in byte_chunks]
    # 将字符列表连接成字符串
    return ''.join(characters)

# 暗示文
binary_str = '010010110100011001000011010101100011010100110000'
output_string = binary_to_string(binary_str)
print("二进制转字符串:", output_string)
# 二进制转字符串: KFCV50

二维码版

二维码(QR码)本质上是一种二进制编码的图形,它通过在二维平面上的黑白像素点的不同排列来表示一段特定的数据,所以也可以暗示某些字符串信息(即扫码后,会看到具体字符串)。这个可以用amzqr库来生成特定的二维码。

比如这个二维码:

摩斯电码版

MORSE_CODE_DICT = {
    'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....',
    'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.',
    'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
    'Y': '-.--', 'Z': '--..',
    '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...',
    '8': '---..', '9': '----.',
    '0': '-----', ',': '--..--', '.': '.-.-.-', '?': '..--..', '/': '-..-.', '-': '-....-',
    '(': '-.--.', ')': '-.--.-'
}

def decrypt(message):
    message += '/'
    decipher = ''
    citext = ''
    for letter in message:
        if letter != '/':
            citext += letter
        else:
            if citext in MORSE_CODE_DICT.values():
                decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT.values()).index(citext)]
            citext = ''
    return decipher


print(decrypt("-.-/..-./-.-./...-/...../-----"))
# 输出:KFCV50

总结

当然,本文不只是为了展示程序员在周四的时候如何向朋友暗示“KFCV50”,而是通过这个实际生活中的例子展示了Python字符串中的一些实际应用,比如编码/解码、进制转换、信息形式转换等。

或许你还有其他的暗示方式,欢迎你在评论区分享与交流。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注