add more

# -*- coding: utf-8 -*-
print('123', 123)
print(type('123'), type(123)) # string, integer /ˈintidʒə/
print('123' + str(1), 123 + 1)
print('123' + str(1), 123 + int('1'))

def binary_add(x, y):
    carry = 0 # 进位。把溢出的携带到高位。
    i = len(x) - 1
    z = []
    while i >= 0:
        t = x[i] + y[i] + carry
        if t >= 2:
            carry = 1
            t -= 2
        else:
            carry = 0
        z.insert(0, t)
        i -= 1
    print(x, ' +\n', y, ' =\n', z, sep='')
    
binary_add( [0, 0, 1, 0], (0, 0, 1, 1) ) # A tuple is a read-only list

# n进制的数相加,某位最大n-1 + n-1 = 2n - 2,n-2留着,高位+1相当于低位+n,如9+9=1*10+8。更正: 忘了低位进来的1了。
# canonical(以最简数学方式)不是cannon(大炮)的形容词,后者两个n。
# 能搞明白纠错码的人不多,会补码就行。2 - 3 = 2 + (-3) = 010 + (~011 + 001) = 010 + 101 = 111
# -3 + 3 = 0 => -3 + 011 = 000 => ? 按位求反得到“互补”的两个数(像两把梳子错个齿),它们的和是111, 再加1=0
# flip-flop: 人字拖鞋走起来啪嗒啪嗒:触发器 = trigger (扳机、触发、触发器)

print(len('\n'), '"' + '\n' + '"')
print(len('\\n'), '"' + '\\n' + '"')

# CR: carriage return, 字车返回(左边); LF: line feed,喂一行(纸往上卷一行); 都是机械打字机(typewriter)的术语。New line: 新行
# type+writer, type: printed letters, 印刷出的字母。typeface: 字体=font
# cast: 铸造, typecast: 重铸类型/类型转换,如int('123')
# 如果整不明白if A and (not B or C),就整多条if,每条只整ABC中的一个,起码加print方便
# 写顺了a += b; a *= c, 别忘了a != 1不是a = !1

# eval(expression), exec(statement)
exec('gate_1_a = 0')
exec('gate_1_b = 1')
exec('gate_1_c = gate_1_a or gate_1_b')
exec('gate_2_a = gate_1_c')
exec('gate_2_b = not gate_2_a')
print(gate_2_b)
# exec(source, globals=None, locals=None, /)
# Execute the given source in the context of globals and locals.
# The source may be a string representing one or more Python statements or a code object as returned by compile().
# The globals must be a dictionary and locals can be any mapping, defaulting to the current globals and locals.
# If only globals is given, locals defaults to it.
str = '''
def wierd_func(a, b):
    if a > b:
        return b + 1
    else:
        return a + 1
'''
print(str)
exec(str)
exec('x = wierd_func(2, 3)')
print(x)

str = '''
# CSDN python getter setter
class Latch:
    def __init__(this): this.x = 0
    def set_(this, x): this.x = x
    def get_(self): return self.x
    def reset(): this.x = 0
'''
print(str)
exec(str)
exec('l1 = Latch()')
#exec('l1.set_(1)')
print(l1.get_())

quit()
with open(file_name, 'r', encoding='utf-8') as f:
    for line in f:
        words = line.split()
        kw = words[0].lower()
        for word in words:
            if len(word) > 13: print(word)
            dic[word.lower()] = kw
posted @ 2021-11-24 13:37  Fun_with_Words  阅读(90)  评论(0编辑  收藏  举报









 张牌。