Python HW8
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)}")