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 = 23 2 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 break 14 elif guess_age > age_of_dean: 15 16 print("think smaller.....") 17 18 else: 19 20 print("think bigger.......") 21 22 count +=1 23 24 else: 25 26 print("you guess is too manys,fuck off")
版本3:(任意玩版本)
age_of_dean = 23 count = 0 while 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 = 23 for 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:%s Age:%s Job:%s Salary:%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的值還保持不變的原因