認識Python和基礎知識

1、第一個Python程序

用vim編寫,格式:python

vim hello.py

而後按 i 進入插入模式開始寫代碼,注意全部的代碼都要用英文輸入法,先寫括號和引號,再在引號裏面寫內容(爲了不引號、括號不匹配)程序員

代碼:vim

print("hello,world!")

在文件所在路徑運行程序(python xxx 是用python2運行程序;python3 xxx是用python3運行程序)app

python hello.py 或者
python3 hello.py

 

2、Python的交互模式

在終端輸入python(python2 或 python3都可)進入Python的交互模式,按exit()退出編輯器

在Python的交互模式下,能夠供開發人員測試一些基本的語法函數

 

在終端輸入ipython也能夠進入Python的交互模式(按exit退出),比python多了一個輸入Linux命令的功能,因此在能用到Python交互模式的時候儘可能用ipython比較好測試

若是系統未安裝ipython,能夠輸入如下命令進行安裝:spa

sudo apt install ipython
sudo apt install ipython3

 

 

3、註釋

<1> 看如下程序示例(未使用註釋)

 

 

<2> 看如下程序示例(使用註釋)

 

<3>註釋的做用

  • 經過用本身熟悉的語言,在程序中對某些代碼進行標註說明,這就是註釋的做用,可以大大加強程序的可讀性code

  • 便於之後再維護代碼的時候能快速知道代碼的做用
  • 用來作測試的代碼能夠進行註釋對象

  • 若是遇到你認爲沒用的代碼,不要輕易刪除,可能牽一髮而動全身,能夠先把它註釋掉

 

<4>註釋的分類

1.單行註釋

以 # 或者 // 開頭,#右邊的全部東西當作說明,而不是真正要執行的程序,起輔助說明做用

 # 我是註釋,能夠在裏寫一些功能說明之類的哦
 print('hello world')

(# 號後面的內容不能換行,換行就變成了執行的代碼,若是要換行,要在新的一行行首再加一個#號)

2.多行註釋

三個連續單引號或三個連續雙引號,引號裏面的內容就是註釋

    '''我是多行註釋,能夠寫不少不少行的功能說明
        這就是我牛X指出

        哈哈哈。。。
    '''

    ''' 
        下面的代碼完成 ,打印一首詩
        名字叫作:春江花月夜
        做者,忘了
    '''

    print('╔═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗')
    print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │  ║')
    print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')
    print('║ │春│灩│江│空│江│江│人│不│白│誰│可│玉│此│鴻│昨│江│斜│不│ ║')
    print('║ │江│灩│流│裏│天│畔│生│知│雲│家│憐│戶│時│雁│夜│水│月│知│ ║')
    print('║ │潮│隨│宛│流│一│何│代│江│一│今│樓│簾│相│長│閒│流│沉│乘│ ║')
    print('║ │水│波│轉│霜│色│人│代│月│片│夜│上│中│望│飛│潭│春│沉│月│ ║')
    print('║ │連│千│繞│不│無│初│無│待│去│扁│月│卷│不│光│夢│去│藏│幾│ ║')
    print('║春│海│萬│芳│覺│纖│見│窮│何│悠│舟│徘│不│相│不│落│欲│海│人│ ║')
    print('║江│平│裏│甸│飛│塵│月│已│人│悠│子│徊│去│聞│度│花│盡│霧│歸│ ║')
    print('║花│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│ ║')
    print('║月│海│何│月│汀│皎│江│江│但│青│何│應│搗│願│魚│可│江│碣│落│ ║')
    print('║夜│上│處│照│上│皎│月│月│見│楓│處│照│衣│逐│龍│憐│潭│石│月│ ║')
    print('║ │明│春│花│白│空│何│年│長│浦│相│離│砧│月│潛│春│落│瀟│搖│ ║')
    print('║ │月│江│林│沙│中│年│年│江│上│思│人│上│華│躍│半│月│湘│情│ ║')
    print('║ │共│無│皆│看│孤│初│望│送│不│明│妝│拂│流│水│不│復│無│滿│ ║')
    print('║ │潮│月│似│不│月│照│相│流│勝│月│鏡│還│照│成│還│西│限│江│ ║')
    print('║ │生│明│霰│見│輪│人│似│水│愁│樓│臺│來│君│文│家│斜│路│樹│ ║')
    print('║ │。│。│。│。│。│?│。│。│。│?│。│。│。│。│。│。│。│。│ ║')
    print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')
    print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')
    print('╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝')

 

4、Python2的中文解決

若是直接在程序中用到了中文,好比:

 print('你好')

 

解決的辦法爲:在程序的開頭寫入以下代碼,這就是中文註釋

#coding=utf-8  

 

修改以後的程序:

#coding=utf-8
print('你好')

 

運行結果:

你好

 

注:在python的語法規範中推薦使用的方式:

# -*- coding:utf-8 -*-

 

5、變量

<1>變量的定義

在程序中,有時咱們須要對2個數據進行求和,那麼該怎樣作呢?

你們類比一下現實生活中,好比去超市買東西,每每我們須要一個菜籃子,用來進行存儲物品,等到全部的物品都購買完成後,在收銀臺進行結帳便可

若是在程序中,須要把2個數據,或者多個數據進行求和的話,那麼就須要把這些數據先存儲起來,而後把它們累加起來便可

在Python中,存儲一個數據,須要一個叫作變量的東西,以下示例:

num1 = 100 #num1就是一個變量,就好一個小菜籃子

num2 = 87  #num2也是一個變量

result = num1 + num2 
#把num1和num2這兩個"菜籃子"中的數據進行累加,而後放到 result變量中

變量的名稱應該體現出數據的意義

1 score = 100
2 #定義了一個變量,這個變量的名字就叫作score,它裏面存儲了一個數值 100
3 
4 high = 100    #單位是cm
5 weight = 7.5  #購買蘋果的重量 斤
6 
7 applePrice = 3.5   #蘋果的價格 元/斤
8 money = applePrice * weight
9 #先把3.5 * 7.5的值算出來,再賦值給money,這也是定義一個變量
10 
11 money = money - 10
12 #第二次賦值就不叫定義變量,而是給這個變量賦上一個新的值
13 print(money)
14 #程序從上往下執行,這裏money的值爲減掉10後的值

(用的vim編輯器,代碼前面的數字表示行號)

說明:

  • 所謂變量,能夠理解爲菜籃子,若是須要存儲多個數據,最簡單的方式是有多個變量,固然了也可使用一個
  • 程序就是用來處理數據的,而變量就是用來存儲數據的

<2>變量的類型以及數據類型轉換

2.1 變量類型

程序中:

爲了更充分的利用內存空間以及更有效率的管理內存,變量是有不一樣的類型的,以下所示:

怎樣知道一個變量的類型呢?

  • 在python中,只要定義了一個變量,並且它有數據,那麼它的類型就已經肯定了,不須要我們開發者主動的去說明它的類型,系統會自動辨別
  • 可使用type(變量的名字),來查看變量的類型
 2.2 數據類型轉換

經常使用的數據類型轉換

函數 說明
int(x [,base ]) 將x轉換爲一個整數
long(x [,base ]) 將x轉換爲一個長整數
float(x ) 將x轉換到一個浮點數
complex(real [,imag ]) 建立一個複數
str(x ) 將對象 x 轉換爲字符串
repr(x ) 將對象 x 轉換爲表達式字符串
eval(str ) 用來計算在字符串中的有效Python表達式,並返回一個對象
tuple(s ) 將序列 s 轉換爲一個元組
list(s ) 將序列 s 轉換爲一個列表
chr(x ) 將一個整數轉換爲一個字符
unichr(x ) 將一個整數轉換爲Unicode字符
ord(x ) 將一個字符轉換爲它的整數值
hex(x ) 將一個整數轉換爲一個十六進制字符串
oct(x ) 將一個整數轉換爲一個八進制字符串

例:

1 age = int(input("請輸入你的年齡:"))
2 #input獲取的全部數據,都當作字符串類型,須要進行數據類型轉換
3 #不進行轉換程序會報錯
4 if age > 18:
5     print("你已成年!")
 

 

6、輸入、輸出

1.輸入

Python2 版本

1.1 raw_input()

在Python2中,獲取鍵盤輸入的數據的方法是採用 raw_input 函數,例:

 

password = raw_input("請輸入密碼:")
print '您剛剛輸入的密碼是:', password

 運行結果:

請輸入密碼:123456
您剛剛輸入的密碼是:123456

 

注意:

  • raw_input()的小括號中放入的是,提示信息,用來在獲取數據以前給用戶的一個簡單提示
  • raw_input()在從鍵盤獲取了數據之後,會存放到等號右邊的變量中
  • raw_input()會把用戶輸入的任何值都做爲字符串來對待
1.2 input()

input()函數與raw_input()相似,但其接受的輸入必須是表達式(把接收的數據當作代碼來執行)

input()接受表達式輸入,並把表達式的結果賦值給等號左邊的變量

>>> a = input() 
123
>>> a
123
>>> type(a)
<type 'int'>
>>> a = input()
abc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined

>>> a = input()
"abc"
>>> a
'abc'
>>> type(a)
<type 'str'>

>>> a = input()
1+3
>>> a
4

>>> a = input()
"abc"+"def"
>>> a
'abcdef'

>>> value = 100
>>> a = input()
value
>>> a
100

 

 

Python3 版本

沒有raw_input()函數,只有input()

而且 python3中的input與python2中的raw_input()功能同樣

 

2.輸出

python中變量的輸出

1. 普通的輸出

 # 打印提示
 print('hello world') print('給個人卡---印度語,你好的意思')

 

2. 格式化輸出

<1>格式化操做的目的

好比有如下代碼:

 pirnt("我今年10歲")
 pirnt("我今年11歲")
 pirnt("我今年12歲")
  • 想想:

    在輸出年齡的時候,用了屢次"我今年xx歲",可否簡化一下程序呢???

  • 答:

    字符串格式化

<2>什麼是格式化

看以下代碼:

age = 10
print("我今年%d歲"%age)

age += 1
print("我今年%d歲"%age)

age += 1
print("我今年%d歲"%age)
  

在程序中,看到了%這樣的操做符,這就是Python中格式化輸出。

age = 18
name = "xiaohua"
print("個人姓名是%s,年齡是%d"%(name,age))

 

<3>經常使用的格式符號

下面是完整的,它能夠與%符號使用列表:

格式符號 轉換
%c 字符
%s 經過str() 字符串轉換來格式化
%i 有符號十進制整數
%d 有符號十進制整數
%u 無符號十進制整數
%o 八進制整數
%x 十六進制整數(小寫字母)
%X 十六進制整數(大寫字母)
%e 索引符號(小寫'e')
%E 索引符號(大寫「E」)
%f 浮點實數
%g %f和%e 的簡寫
%G %f和%E的簡寫

 

 

3. 換行輸出

 在輸出的時候,若是有\n那麼,此時\n後的內容會在另一行顯示

 

print("1234567890-------")      # 會在一行顯示

print("1234567890\n-------")   # 一行顯示1234567890,另一行顯示-------

 

4.練一練 

打印名片

 1 """
  2 age = 18
  3 print("你的年齡爲:%d" % age)
  4 #格式化,整數取值用 %d
  5 
  6 name = "李茂貞"
  7 print("你的名字是:%s" % name)
  8 #字符串取值用 %s
  9 
 10 high = input("請輸入你的身高:")
 11 "input()接受表達式輸入,並把表達式的結果賦值給等號左邊的變量"
 12 print(high) #print也能夠打印變量
 13 
 14 """
 15 
 16 print("#################################")
 17 #打印名片
 18 #1. 使用input獲取必要的信息
 19 name = input("請輸入名字:")
 20 sex = input("請輸入你的性別:")
 21 age = int(input("請輸入你的年齡:"))
 22 #input獲取的數據默認是字符串類型,這裏強制轉換爲int類型
 23 QQ = int(input("請輸入QQ:"))
 24 
 25 #2. 使用print來打印名片
 26 print("====================")
 27 print("姓名:%s" % name)
 28 print("性別:%s" % sex)
 29 print("年齡:%d" % age)
 30 print("  QQ:%d" % QQ)
 31 print("====================")

 

7、if判斷語句

<1>if判斷語句介紹

if語句是用來進行判斷的,其使用格式以下:

if 要判斷的條件:
        條件成立時,要作的事情

demo1:

age = 30

print "------if判斷開始------"

if age>=18:
    print "我已經成年了"

print "------if判斷結束------"

運行結果:

------if判斷開始------
    我已經成年了
------if判斷結束------

demo2:

age = 16

print "------if判斷開始------"

if age>=18:
    print "我已經成年了"

print "------if判斷結束------"

運行結果:

------if判斷開始------
------if判斷結束------

小總結:

  • 以上2個demo僅僅是age變量的值不同,結果卻不一樣;可以看得出if判斷語句的做用:就是當知足必定條件時纔會執行那塊代碼,不然就不執行那塊代碼

注意:

  • 代碼的縮進爲一個tab鍵,或者4個空格
  • if條件知足,執行if後面的代碼塊(代碼前面有連續的tab鍵),而不是一條語句,else同理

 

<2>練一練

要求:從鍵盤獲取本身的年齡,判斷是否大於或者等於18歲,若是知足就輸出「哥,已成年,網吧能夠去了」

不知足就輸出「未成年,回家寫做業去吧!」

代碼:

1 age = int(input("請輸入你的年齡:"))
2 if age > 18:
3     print("哥,已成年,網吧能夠去了!")
4 else:
5     print("未成年,回家寫做業去吧!")
                                                                                                         

 

8、標識符、關鍵字、命名規則

標示符和關鍵字

<1>標示符(也就是變量名)

什麼是標示符,看下圖:

 

開發人員在程序中自定義的一些符號和名稱

標示符是本身定義的,如變量名 、函數名等

<2>標示符的命令規則

標示符由字母、下劃線和數字組成,且數字不能開頭

 思考:下面的標示符哪些是正確的,哪些不正確,爲何?

   fromNo12
   from#12
   my_Boolean
   my-Boolean
   Obj2
   2ndObj
   myInt
   test1
   Mike2jack
   My_tExt
   _test
   test!32
   haha(da)tt
   int
   jack_rose
   jack&rose
   GUI
   G.U.I

python中的標識符是區分大小寫的

<3>命名規則

3.1 見名知意

起一個有意義的名字,儘可能作到看一眼就知道是什麼意思(提升代碼可 讀性) 好比: 名字 就定義爲 name , 定義學生 用 student

3.2 駝峯命名法

小駝峯式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myName、aDog

大駝峯式命名法(upper camel case): 每個單字的首字母都採用大寫字母,例如:FirstName、LastName

不過在程序員中還有一種命名法比較流行,就是用下劃線「_」來鏈接全部的單詞,好比send_buf

<4>關鍵字

什麼是關鍵字?

python一些具備特殊功能的標示符,這就是所謂的關鍵字

關鍵字,是python已經使用的了,因此不容許開發者本身定義和關鍵字相同的名字的標示符

 

查看關鍵字:

 

and     as      assert     break     class      continue    def     del
elif    else    except     exec      finally    for         from    global
if      in      import     is        lambda     not         or      pass
print   raise   return     try       while      with        yield

能夠經過如下命令進行查看當前系統中python的關鍵字

 

8、運算符

python支持如下幾種運算符

<1>算術運算符

下面以a=10 ,b=20爲例進行計算

運算符 描述 實例
+ 兩個對象相加 a + b 輸出結果 30
- 獲得負數或是一個數減去另外一個數 a - b 輸出結果 -10
* 兩個數相乘或是返回一個被重複若干次的字符串 a * b 輸出結果 200
/ x除以y b / a 輸出結果 2
// 取整除 返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0
% 取餘 返回除法的餘數 b % a 輸出結果 0
** 返回x的y次冪 a**b 爲10的20次方, 輸出結果 100000000000000000000
例:
>>> 9/2.0
4.5
>>> 9//2.0
4.0

 

<2>賦值運算符

運算符 描述 實例
= 賦值運算符 把=號右邊的結果給左邊的變量 num=1+2*3 結果num的值爲7
例:
>>> a, b = 1, 2
>>> a
1
>>> b
2

 

<3>複合賦值運算符

運算符 描述 實例
+= 加法賦值運算符 c += a 等效於 c = c + a
-= 減法賦值運算符 c -= a 等效於 c = c - a
*= 乘法賦值運算符 c *= a 等效於 c = c * a
/= 除法賦值運算符 c /= a 等效於 c = c / a
%= 取模賦值運算符 c %= a 等效於 c = c % a
**= 冪賦值運算符 c **= a 等效於 c = c ** a
//= 取整除賦值運算符 c //= a 等效於 c = c // a

 

<4>比較(關係)運算符

 

運算符 描述 示例
== 檢查兩個操做數的值是否相等,若是是則條件變爲真。 如a=3,b=3則(a == b) 爲 true
!= 檢查兩個操做數的值是否相等,若是值不相等,則條件變爲真。 如a=1,b=3則(a != b) 爲 true
<> 檢查兩個操做數的值是否相等,若是值不相等,則條件變爲真。 如a=1,b=3則(a <> b) 爲 true。這個相似於 != 運算符
> 檢查左操做數的值是否大於右操做數的值,若是是,則條件成立。 如a=7,b=3則(a > b) 爲 true
< 檢查左操做數的值是否小於右操做數的值,若是是,則條件成立。 如a=7,b=3則(a < b) 爲 false
>= 檢查左操做數的值是否大於或等於右操做數的值,若是是,則條件成立。 如a=3,b=3則(a >= b) 爲 true
<= 檢查左操做數的值是否小於或等於右操做數的值,若是是,則條件成立。 如a=3,b=3則(a <= b) 爲 true

 

 

<5>邏輯運算符

運算符 邏輯表達式 描述 實例
and x and y 布爾"與" - 若是 x 爲 False,x and y 返回 False,不然它返回 y 的計算值。 (a and b) 返回 20。
or x or y 布爾"或" - 若是 x 是 True,它返回 True,不然它返回 y 的計算值。 (a or b) 返回 10。
not not x 布爾"非" - 若是 x 爲 True,返回 False 。若是 x 爲 False,它返回 True。 not(a and b) 返回 False
相關文章
相關標籤/搜索