Quick actions

cmd+k|ctrl+k

Navigation

Languages

Baitap4-5-6-7

Snippet info

Language

Python

Visibility

public

Author

thanhtu250590

Created

2016-07-18T14:15:50Z

Updated

2016-07-18T16:47:22Z

# Bai 4.1

def triangle():
    return [(a,b,c) for a in range(1,11) for b in range(1,11) for c in range(1,11) if(a + b + c == 24 and a**2 + b**2 == c**2) ]
#triangle_compound = triangle()
#print(triangle_compound)
# Bai 4.2

import string
a = string.ascii_lowercase
def sum_char(string):
    sumy = 0
    for c in string.lower():
        sumy += a.index(c) + 1
    return sumy
my_char = ["masturbation", "pussy", "discipline", "beer", "familug"]

#for char in my_char:
    #points = sum_char(char)
    #print(points)
    
# Bai 4.3

def my_max(li):
    maxi = 0
    for i in li:
        if i > maxi:
            maxi = i
    return maxi
my_li = [5,6,3,8,1,9,11,55,77,44.33,99.67,99.77,100,100.1]
#assert max(my_li) == my_max(my_li)

# Bai 4.5
def my_sum(li):
    sumy = 0
    for i in li:
        sumy += i
    return sumy
def my_prod(li):
    prod = 1
    for i in li:
        prod *= i
    return prod
def sum_and_prod(li):
    return (my_sum(li),my_prod(li))
from functools import reduce
#assert sum_and_prod(my_li) == (sum(my_li), reduce(lambda x,y: x*y, my_li))

# Bai 5.2

import sys
#print(sys.platform)

# Bai 5.3

def fizzbuzz():
    for i in range(1,101):
        if i % 15 == 0:
            print('FizzBuzz')
        elif i % 3 == 0:
            print('Fizz')
        elif i % 5 == 0:
            print('Buzz')
        else:
            print(i)
#fizzbuzz()

# Bai 5.4

def create_file(file_path):
    with open(file_path, 'w') as fo:
        for i in range(1,30000001):
            if i % 2 == 0:
                fo.write(i*2)
            else:
                fo.write('1')
    
def print_last_10_row(file_path):
    with open(file_path) as f:
        j = 30000001
        for i in f:
            j -= 1
            if j <= 10:
               print(i)
    
file_path = '/tmp/baitap54.txt'               
# Bai 5.5

def cal_prod_char():
    names = ''
    with open('name.txt') as f:
        for i in f:
            names = i
    my_li = []
    for name in names.split(','):
        my_li.append(name[1:-1])
    result = 0
    sort_li = sorted(my_li)
    for j in sort_li:
        result += sum_char(j) * sort_li.index(j)
    return result
    
sum_my_char = cal_prod_char()

print(sum_my_char)

# Bai 5.6

def path_counter(x,y):
    
    path = {}
    #generate path[list] for matrix x*y
    path[x,y] = 0
    
    # matrix 0
    if(x==1 and y==1):
        return 0
    # matrix 1
    if(x==1 or y==1):
        return 1
        
    # path of the horizontal and vertical border
    for coor_x in range(x-1,0,-1):
        path[coor_x,y] = 1
    for coor_y in range(y-1,0,-1):
        path[x,coor_y] = 1
    # loop to fill path of all other note
    for coor_x in range(x-1,0,-1):
        for coor_y in range(y-1,0,-1):
            path[coor_x,coor_y] = path[coor_x+1,coor_y] + path[coor_x,coor_y+1]
    return path
path = path_counter(11,11)
print(path[1,1])

# Bai 6.1

# Bai 6.2

this_li = ['meo', 'bo', 'ga', 'cho', 'chim', 'lon']
new_li = [(a,b) for a in this_li[0::2] for b in this_li[1::2] if( this_li[0::2].index(a) == this_li[1::2].index(b))]
print(new_li)
        
# Bai 6.3

import calendar
month = calendar.monthrange(2016,1)
print(month[1])
my_month = []
for i in range(1,13):
    my_month.append((i,calendar.month_name[i],calendar.monthrange(2016,i)[1]))
print(my_month)
def print_month():
    with open('tmp/64out.txt', 'w') as fo:
        for i in my_month:
            fo.write(i)
            fo.write('\n')
            
# Bai 6.4

def rprint(n):
    if n > 0:
        rprint(n-1)
        print(n)
rprint(5)

# Bai 6.5

fibo = [1,1]
def gen_fibo_sum_even(fibo):
    fibo_sum = 0
    while fibo[1] < 4000000:
        tmp = fibo[1]
        fibo[1] = fibo[0] + fibo[1]
        fibo[0] = tmp
        if fibo[1] % 2 == 0:
            fibo_sum += fibo[1]
    return fibo_sum
fibo_sum = gen_fibo_sum_even(fibo)
print(fibo_sum)

# Bai 6.6

def add_comma_left(string):
    result = ''
    for i in range(len(string)-1,-1,-1):
        result = string[i] + result
        if (i != len(string) -1) and ((len(string) - i) % 3 == 0):
            result = '.' + result
    return result
def to_string(float_num):
    result = ''
    tmp = str(float_num).split('.')
    left = tmp[0]
    return add_comma_left(left) + ',' + tmp[1] 
a = to_string(22111234567.89101)
print(a)

# Bai 6.7

def my_sum(*li):
    sum = 0
    for i in li:
        sum += i
    return sum
print(my_sum(1,2,3,4,5,6,7))
print(my_sum(1,2,3,4,5,6,7,8,9))
INFO