Kalandozás a python programozás földjén.

Python, ahogy én ...

Legnagyobb közös osztó

2019. március 27. - d3c0d3r

Feladat:

legnagyobb közös osztó a matematikában véges sok szám olyan közös osztója (azaz olyan szám, amely a véges sok szám mindegyikét osztja), amely bármely más közös osztónál nagyobb. Írjunk függvényt!

via

Megoldás:

def lnko(a,b): # Legnagyobb kozos oszto
	while b>0:
		a,b = b,a%b
	return a
print(lnko(35,1234560))

Faktorial

Feladat:

 matematikában egy n nemnegatív egész szám faktoriálisának az n-nél kisebb vagy egyenlő pozitív egész számok szorzatát nevezzük. Jelölése: n!, amit „n faktoriális”-nak vagy „n faktor”-nak olvasunk ki. Az n! jelölést Christian Kramp vezette be 1808-ban. Írjunk függvényt!

via

Megoldás:

def factorial(n):
  return 1 if n==0 else n * factorial(n-1)
  
print (factorial(10))

Fibonacci

Feladat:

A Fibonacci-számsorozatban minden szám az azt megelőző két szám összege. Így tehát a számsorozat: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 stb. Minél későbbi tagjait vesszük a sorozatnak, két egymást követő szám aránya annál inkább az aranymetszéshez fog közelíteni (ami megközelítőleg 1,618 vagy 0,618)

A számsor már a 6. században ismert volt indiai matematikusok által (például Gopala (1135 előtt) és Hemacsandra (1150 körül) említették az 1, 2, 3, 5, 8, 13, 21,... számsorozatot), de csak Fibonacci Liber Abacci-ját követően vált közismertté Európában.

via

Megoldás:

def fibonacci(n):
	return n if n<2 else fibonacci(n-2)+fibonacci(n-1)

print (fibonacci(7))

 

Másik megoldás (gyorsabb):

def fibonacci(n):
    fib = [0,1]
    for i in range(1,n):
        fib.append(fib[i]+fib[i-1])
    return fib[-1]

mkdir

Feladat:

file.txt állományban felsorolt mappák létrehozása. access, excel és word almappákkal.

file.txt:

tanulo1\10B_Gipsz_Jakab
tanulo2\10B_Baranyai Péter
tanulo3\10B_Kiss Béla

 Megoldás:

# Makes directories from 'file.txt'
#
import os
import sys

sub_dirs = ["access", "excel", "word"]
with open('file.txt', encoding='utf-8') as f:
    for line in f:
        line = line.strip('\n')
        dirs = line.split('\\')
        if not os.path.exists(dirs[0]):
            os.mkdir(dirs[0])
        try:
            os.mkdir(line)
        except Exception as e:
            pass
        os.chdir(line)
        for sub_dir in sub_dirs:
            try:
                os.mkdir(sub_dir)
            except Exception as e:
                pass
        os.chdir('..\..')
print("\nMinden könyvtárat létrehoztam.")

FizzBuzz

Feladat:

Írj egy programot vagy scriptet, ami 1-től 100-ig kiírja a számokat. Ha a szám osztható hárommal, akkor írja ki a szám helyett, hogy Fizz, ha osztható öttel, akkor Buzz, ha mind a kettővel osztható, akkor FizzBuzz.

via

Megoldás:

#!/usr/bin/env python

def fizzBuzz(n):
	for i in range(1,n+1):
		if i%15==0:
			print("fizz buzz",i)
		elif i%3==0:
			print("fizz",i)
		elif i%5==0:
			print("buzz",i)
		else:
			print(i)
			
def main(args):
	fizzBuzz(30)
	return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))
süti beállítások módosítása