--- tags: Python --- # Python studying memo ###### tags: `python` ## virtualenv ### create new virtual environment ```bash= sudo apt-get install python3 sudo apt-get install python-pip pip3 install --upgrade pip3 install virtualenv virtualenv -p python3 [virtual_environment_name] # ex: virtualenv -p python3 tf_2012_tf1_py3 # After that, it will create a folder named tf_2012_tf1_py3, and it contains two folders: bin and lib ``` ### run in a created virtual environment ```bash= . ./[vitrual_environment_name]/bin/activate ``` ### exit virtual environment ```bash= deactivate ``` ## 精通Python 讀後筆記 (未完成) ### Note I only read a little, because I may not used all of these content ### book_url_example ```python= import webbrowser import requests import json from urllib.request import urlopen print("Let us find an old website.") site = input("Type a website URL: ") era = input("Type a year, month and a day, like 20150613: ") url = "http://archive.org/wayback/available?url=%s&timestamp=%s" % (site, era) response = urlopen(url) contents = response.read() text = contents.decode("utf-8") data = json.loads(text) try: old_site = data["archived_snapshots"]["closest"]["url"] print("Found this copy: ", old_site) print("It should appear in your browser now") webbrowser.open(old_site) except: print("Sorry, no luck finding", site) ``` ```python= print("Let us find an old website.") site = input("Type a website URL: ") era = input("Type a year, month and a day, like 20150613: ") url = "http://archive.org/wayback/available?url=%s&timestamp=%s" % (site, era) response = requests.get(url) data = response.json() try: old_site = data["archived_snapshots"]["closest"]["url"] print("Found this copy: ", old_site) print("It should appear in your browser now") webbrowser.open(old_site) except: print("Sorry, no luck finding", site) ``` ### variable ```python= var_num = 123 type(var_num) # int var_str = '456' type(var_str) # str print(var_num+int(var_str)) # output: 579 # (datatype: int) print(str(var_num)+var_str) # output: 123456 # (datatype: str) ``` ### print ```python= var_name = input('Your Name : ') print('Your Name : ' + var_name) ``` ### if-else ```python= var_money = input('Your Money : ') if int(var_money) > 600: print('badminton') elif int(var_money) < 600 and int(var_money) > 300: print('eat') else: print('go home and sleep') ``` ### list ```python= spells = [ "Riddikulus!", "Wingardium Leviosa!", "Avada Kedavra!", "Expecto Patronum!", "Nox", "Lumos", ] print(spells[2]) # output: Acada Kedavra! print(spells) # output: ['Riddikulus!', 'Wingardium Leviosa!', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos'] spells.append("Sectumsempra") # added var to 'last' place of list print('after list.append, ', spells) # output: after list.append, ['Riddikulus!', 'Wingardium Leviosa!', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos', 'Sectumsempra'] spells.insert(2,"Crucio") # added var to the place which you pointed to print('after list.insert, ', spells) # output: ['Riddikulus!', 'Wingardium Leviosa!', 'Crucio', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos', 'Sectumsempra'] spells.pop() # if there is no parameter for list.pop method, it automaticly delected last value of the list print('after list.pop, ', spells) # output: ['Riddikulus!', 'Wingardium Leviosa!', 'Crucio', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos'] del_num = 2 print('del_num : ', del_num) spells.pop(del_num) # output: 'Crucio' # deleted list[2] value print('after list', del_num,'.pop, ', spells) # output: ['Riddikulus!', 'Wingardium Leviosa!', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos'] spells.insert(0,"Avada Kedavra!") # input "Avada Kedavra" at list[0] print('after list.insert, ', spells) # output: ['Avada Kedavra!', 'Riddikulus!', 'Wingardium Leviosa!', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos'] spells.remove("Avada Kedavra!") # delected all value "Avada Kedavra" in list print('after list.remove, ', spells) # output: ['Riddikulus!', 'Wingardium Leviosa!', 'Avada Kedavra!', 'Expecto Patronum!', 'Nox', 'Lumos'] spells.clear() # clear the list print(spells) # output: [] ``` ```python= list_num = [ 2, 5, 3, 8, 9, 22, ] print(list_num[2]) # output: 3 print(list_num) # output: [2, 5, 3, 8, 9, 22] list_num.append(15) # added var to last place of list print('after list_num.append, ', list_num) # output: [2, 5, 3, 8, 9, 22, 15] list_num.insert(2,16) # added var 16 to place 2 of list print('after list_num.insert, ', list_num) # output: [2, 5, 16, 3, 8, 9, 22, 15] print('max : ', max(list_num)) # output: max : 22 print('min : ', min(list_num)) # output: min : 2 print('sum : ', sum(list_num)) # output: sum : 80 print('list_num.length : ', len(list_num)) # output: list_num.length : 8 print('2nd to 4th place of list_num : ', list_num[1:4]) # output: 2nd to 4th place of list_num : [5, 16, 3] ``` ### for_loop ```python= for cnt in range(1, 10): print(cnt) """ output: 1 2 3 4 5 6 7 8 9 """ print("\n") for cnt in range(2, 20, 2): print(cnt) """ output: 2 4 6 8 10 12 14 16 18 """ print("\n") for cnt in range(20, 2, -2): print(cnt) """ output: 20 18 16 14 12 10 8 6 4 """ for countdown in 5, 4, 3, 2, 1, "hey!!!": print(countdown) """result will be : 5 4 3 2 1 hey!!!""" ``` ### dictionary ```python= quotes = { "Moe": "A wise guy, huhy?", "Larry": "Ow!", "Curly": "Nyuk nyuk!", } Name = "Larry" print(Name, "says", quotes[Name]) # output: Larry says Ow! ``` ### function ```python= def hello_world(): print('hello world') def print_variable(i): print('input variable : ',i) def plus(a,b): c = (int(a) +int(b)) print(a, '+', b, '=', c) hello_world() print_variable('500') plus_one = 3 plus_two = 5 plus(plus_one, plus_two) # output: 3 + 5 = 8 ``` ### object ```python= class Animal(): def set_age(self, age): self.age = age def say_my_age(self): print("My age is : ", self.age) def howl(self): print("HELLO PYTHON") class Cat(Animal): def set_name(self, name): self.name = name def say_my_name(self): print("My name is : ", self.name) cat_a = Cat() cat_a.set_age('26') cat_a.set_name('Tom') cat_a.howl() # output: HELLO PYTHON cat_a.say_my_age() # output: My age is : 26 cat_a.say_my_name() # My name is : Tom ``` ```python= class Animal: def __init__(self, name, age): self.name = name self.age = age def move(self): print(str(self.name) + " moving") def showing_age(self): print(self.name + ' age: ' + self.age) class Cat(Animal): def __init__(self, name, age): self.name = name self.age = age def sound(self): print(str(self.name) + " meow") def showing_age(self): print(self.name + ' age: ' + self.age) def print_hello_world(): print("Hello_World") print("__name__ : " + str(__name__)) print_hello_world() print("\n\n\n") Tom = Cat('Tom', '28') Tom.move() Tom.showing_age() Tom.sound() print("\n\n\n") Kevin = Animal('Kevin', '29') Kevin.move() Kevin.showing_age() Kevin.sound() """ """ ``` ### source 1. https://kopu.chat/2017/01/18/%e4%b8%80%e5%b0%8f%e6%99%82python%e5%85%a5%e9%96%80-part-1/ 2. https://mofanpy.com/tutorials/python-basic/basic/ ## python operators ### python Logical operators ```python= a = 1 b = 2 result = (a == b) if (result): print("result is true") # false => this part is not going to execute if (not result): print("result is not true") # not false => this part is going to execute if ((not result) and (a < 0)): print("result is not true and a is less than 0") # not false but a > 0 => this part is not going to execute if (result or (b > 0)): print("result is true or b is more than 0") # false, however b > 0 => this part is going to execute ``` ## if __name__ == '__main__': file name: test.py ```python= print(__name__) print('I love Python') def love(): print('In function love, Python is Good') if __name__ == '__main__': love() print('I wrote python everyday') ``` ```bash= python3 test.py << output: __main__ I love Python In function love, Python is Good I wrote python everyday output: ``` file name: import_test.py ```python= import test ``` ```bash= python3 import_test.py << output: test I love Python output: ``` only if __name__ == __main__, code in if __name__ == __main__ will be executed ### source 1. http://hn28082251.blogspot.com/2019/05/python-if-name-main.html ## def __init__ ```python= class Animal(): def __init__(self, name): self.name = name Lucky = Animal("Lucky") print(Lucky.name) # output: Lucky Unlucky = Animal() print(Unlucky.name) # output: TypeError: __init__() missing 1 required positional argument: 'name' ``` def __init__ always executes when the object is declared ### source 1. https://weilihmen.medium.com/%E9%97%9C%E6%96%BCpython%E7%9A%84%E9%A1%9E%E5%88%A5-class-%E5%9F%BA%E6%9C%AC%E7%AF%87-5468812c58f2 ## class a(b): To describe it simply, object a inherit attribute of object b http://yltang.net/tutorial/python/15/ ## python _ __ ### _function (sample code with bug) plus one underscore in front of name of function, that means other programs outside can not use this function Common.py ```python= def _gcd_core(a, b): if a > b: return a else: return b def find_cd(a): cd_list=[] for x in range(1, (a + 1)): ans = a % x if ans == 0: cd_list.append(x) return cd_list print(find_cd(30)) # output: [1, 2, 3, 5, 6, 10, 15, 30] print(_gcd_core(30, 7)) # output: 30 ``` test.py ```python= from Common import * find_cd(30) # output: [1, 2, 3, 5, 6, 10, 15, 30] _gcd_code(30,7) # output: """ output: Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name '_gcd_code' is not defined """ ``` https://medium.com/bits-to-blocks/python%E4%B8%AD%E7%9A%84underscore-%E8%88%87-9b40caf32483 ### reference https://www.w3schools.com/python/python_operators.asp ## pack python code to .exe ### reference https://kknews.cc/zh-tw/code/ab2oy5n.html