python成長之路-----day1----筆記(1),pythonday1
1、python語言介紹
python的創始人:Guido Van Rossum
2、python是一門什麼樣的語言
程式設計語言主要從以下幾個角度進行分類:編譯型,靜態型,動態性,強型別定義語言和弱類型定義語言
1) 編譯型:有一個負責翻譯的程式來對我們的原始碼進行轉換,產生對應的可執行代碼,這個過程就是編譯(Compile),而負責編譯的程式就被稱為編譯器(Compiler)
2) 通常我們所說的動態語言,靜態語言是指動態類型語言和靜態類型語言
(1)動態類型語言:是指在運行期間採取做資料類型檢查的語言。即在用動態類型的語言編程時,永遠也不用給任何變數指定資料類型,該語言會在你第一次賦值給變數時,在內部將資料類型記錄下來。典型的是python和Ruby
(2)靜態類型語言:資料類型是在編譯期間檢查的,也就是說在寫程式的時候要聲明所有變數的資料類型。C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#,JAVA
3、Python能做什嗎?
網路應用、科學運算、GUI程式、系統管理工具、其他等等
python的優缺點:
優點:簡單、開發效率高、進階語言、可移植性、可擴充性、可嵌入性
缺點:速度慢,但是相對的、代碼不能加密、線程不能利用多CPU問題
4、python解譯器:Cpython、IPython、PyPy、Jython、IronPython
----------------以上是一些基礎的python知識---------------
1、如果用的ubantu系統的linux,預設存在的是兩個python版本:2.7和3.5,預設執行python,啟動的是2.7版本
如果想要啟動3.5版本,需要做如下操作
ln -s /usr/bin/python3.5 /usr/bin/python(需要在root下使用者執行或者sudo)
查看自己的python的版本:
Python -V
2、開始python的第一個程式:
代碼內容如下:
代碼中開頭的:#!/usr/bin/env python與編寫shell程式時#!/bin/bash意思是一樣的聲明要使用的解譯器類型!
運行結果如下:
3、第二個小程式關於猜年齡:
代碼內容如下:
在linux中寫的一個版本:
運行結果如下:
對上面猜你年齡程式的一些分析如下:
對於input在2.7裡面的是raw_input()
在3.5裡面同樣的print需要print()
對於if和else後面的冒號為規定格式
代碼裡的int就是為了將輸入的字串轉換為int類型,預設輸入的內容都是字串string類型
版本1:(用了if…elif…else)
1 age_of_dean = 232 guess_age = int(input("input you guess:"))3 if guess_age == age_of_dean:4 print("you got it")5 elif guess_age > age_of_dean:6 print("think smaller.....")7 else:8 print("think bigger.......")
版本2:(用了while迴圈)
1 age_of_dean = 23 2 3 count = 0 4 5 while count<3: 6 7 guess_age = int(input("input you guess:")) 8 9 if guess_age == age_of_dean:10 11 print("you got it")12 13 break14 elif guess_age > age_of_dean:15 16 print("think smaller.....")17 18 else:19 20 print("think bigger.......")21 22 count +=123 24 else:25 26 print("you guess is too manys,fuck off")
版本3:(任意玩版本)
age_of_dean = 23count = 0while count<3: guess_age = int(input("input you guess:")) if guess_age == age_of_dean: print("you got it") break elif guess_age > age_of_dean: print("think smaller.....") else: print("think bigger.......") count +=1 if count == 3: input_continue = input("Do you want to continue to guess:") if input_continue != "n": count = 0
版本4:(for迴圈)
age_of_dean = 23for i in range(3): guess_age = int(input("input you guess:")) if guess_age == age_of_dean: print("you got it") break elif guess_age > age_of_dean: print("think smaller.....") else: print("think bigger.......")else: print("you guess is too manys,fuck off")
4、關于格式化輸出的三種方法:
方法1:Name = input("Name:")Age = input("Age:")Job = input("Job:")Salary = input("Salary:")info1 = '''--------info of %s-------Name:%sAge:%sJob:%sSalary:%s''' %(Name,Name,Age,Job,Salary)print(info1)方法2:Name = input("Name:")Age = input("Age:")Job = input("Job:")Salary = input("Salary:")info2 = '''--------info of {0}-------Name:{0}Age:{1}Job:{2}Salary:{3}''' .format(Name,Name,Age,Job,Salary)方法3:info3 = '''--------info of {_name}-------Name:{_name}Age:{_age}Job:{_job}Salary:{_salary}''' .format(_name=Name,_age=Age,_job=Job,_salary=Salary)print(info2)
5、變數的明名規則:
python變數的命名只能由數字、字母和底線3種字元組成,且第一個字串必須為字元或者底線。
例如:name,Sutdent,Li_li
不符合的規則如下:M.C,$23,#11,zhao Fan,C++這些都是錯誤的命名
6、關於賦值後在記憶體中的關係
例子代碼如下:
name = "Dean"
name2 = name
print("My name is ",name,name2)
name = "zhaofan"
print("My name is ",name,name2)
運行結果如下:
從上面可以看出,當你把一個變數name賦值給另一個變數name2時,解譯器只是把name變數指向的記憶體位址賦值給了name2,因此name和name2並未發生直接的關聯,只不過是他們都同時指向了同一個記憶體位址而已,這也是為什麼你把name再指向一個新的地址後,而name2的值還保持不變的原因