Python HW8

mail@pastecode.io avatar
unknown
python
a year ago
2.5 kB
0
Indexable
Never
#1
a = eval(input("Enter a number: "))
a_new = a
b = ""
c = 0

if a == 0:
    result = "0"
elif a < 0:
    result = "It is negative"
else:
    while True:
        if a_new < 1:
            break

        if int(a_new) % 2 == 0:
            b = "0" + b
        else:
            b = "1" + b

        a_new /= 2

    print(f"binary:  {b}")

    power = 0
    for i in reversed(range(len(b))):
        c += int(b[i]) * power * power
        power += 1

    if a == c:
        print(f"decimal: {c}")


#2
class Freq:
    
    def __init__(self, letter, freq):
        self.letter = letter
        self.freq = freq
    
text = input("Enter some text: ")
data = list()
count = 0

for i in text:
    detect = False
    
    for j in range(len(data)):
        if i == data[j].letter :
            data[j].freq += 1
            detect = True
            break
        
    if detect == False:
        data.append(Freq(i, 1))

    count += 1

print("-- Character Frequency Table --")
for i in data:
    print(f"{i.letter}\t {(i.freq / count) * 100:.2f}%")


# 3
class Freq:
    
    def __init__(self, letter, freq):
        self.letter = letter
        self.freq = freq
    
text = input("Enter some text: ")
data = list()
count = 0

for i in text:
    detect = False
    
    for j in range(len(data)):
        if i == data[j].letter :
            data[j].freq += 1
            detect = True
            break
        
    if detect == False:
        data.append(Freq(i, 1))

    count += 1

import turtle as t
t2 = t.Turtle()
t.speed(10)
for i in range(len(data)):
    t.forward(10)
    t.penup()
    t.right(90)
    t.forward(20)
    t.left(90)
    t.write(data[i].letter)
    t.left(90)
    t.forward(20)
    t.right(90)
    t.pendown()
    t.left(90)
    t.forward(data[i].freq * 20)
    t.right(90)
    t.forward(10)
    t.right(90)
    t.forward(data[i].freq * 20)
    t.left(90)
    t.backward(20)
    t.forward(20)
t.forward(20)

longest = 0
for i in range(len(data)):
    if data[i].freq > longest:
        longest = data[i].freq

t2.left(90)
t2.forward((longest * 20) + 20)

t.done()


#4
a = input("Enter the first 9 digits of an USBN-10 as a string: ")
sum = 0

if len(a) == 9:
    for i in range(len(a)):
       sum += int(a[i]) * (i+1)

    sum %= 11

    if sum == 10:
        sum = "X"
    
    print(f"Your ISBN-10 number is {a + str(sum)}")