python3基礎語法(一)

有過C/C++/java基礎,雖然都是皮毛…開始自學python 總會順利一些。
環境:win+R > python --version
Python 3.6.5 :: Anaconda, Inc.
環境搭建就不說了 搭好環境後
cmd控制檯輸入python 進入命令行交互式編程
可直接用cmd或者IDEL或者pycharm做解釋器
因爲想要開始快一些,暫時能上手,然後在項目中查缺補漏。

收集資料:

參考了此處https://www.jianshu.com/p/5e69417ed9d2
python3官方文檔中文版 很不錯:http://www.pythondoc.com/pythontutorial3/index.html
Awesome Python 最全的python資源,找項目練手:https://github.com/vinta/awesome-python
中文版移步:https://github.com/jobbole/awesome-python-cn
笨方法學python,最受歡迎的python入門教程。PDF地址:鏈接:https://pan.baidu.com/s/1i4YiHZv 密碼:t5i4
廖雪峯教程:https://www.liaoxuefeng.com/wiki/1016959663602400
簡明python教程:鏈接: https://pan.baidu.com/s/1iI9gbyNkSlrMQIslH9aahQ 提取碼: nuah

晚輩暫時計劃看一遍菜鳥教程的基礎,再一遍官方文檔,穿插做小項目。

python特點
一種解釋型、交互式、面向對象、跨平臺的語言

優點:
1.易於閱讀和維護
2.有一個廣泛的標準庫
3.python支持壞人各種主流數據庫之間的交互
4.可擴展性和可移植性
5.GUI編程【圖形化界面】
6.可嵌入型【可以將python程序嵌入到c++中】
缺點:
1.運行速度慢
2.代碼不能加密

編碼

默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字符串都是 unicode 字符串。 當然你也可以爲源碼文件指定不同的編碼:

# -*- coding: cp-1252 -*-

保留字(關鍵字)

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

標識符

  • 第一個字符必須是字母表中字母下劃線 _
  • 標識符的其他的部分由字母、數字和下劃線組成。
  • 標識符對 大小寫敏感
    python區分大小寫很重要,如 True,False是關鍵字,而true,false是用戶可定義的變量

在 Python 3 中,非 ASCII 標識符也是允許的了。

註釋 (# ‘’’ ‘’’ “”" “”")

單行註釋 相當於 C/C++的 //

#!/usr/bin/python3		

多行註釋 相當於 /**/

'''
第三註釋
第四註釋
'''
 
"""
第五註釋
第六註釋
"""

python 基本數據類型

變量

python變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以後該變量就會被創建。
在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。

a,b,c = 1,2,"hello"    #允許爲多個變量同時賦值

width = 1080
height = 1920
name = "hello"
print(width,height,name)

#換行輸出
print(width)
print(height)
print(name)
#不換行輸出
print(width,height,name)
#或者 這樣不換行輸出
print(width,end=" ")
print(height,end=" ")
print(name,end=" ")

Python3 有六個標準數據類型中:

  • 不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
  • 可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

1. Number(數字)

Python3 支持 int、float、bool、complex(複數)

只有一種整數類型 int,表示爲長整型,沒有Long

可用內置type() 函數查詢變量的數據類型,或者 isinstance(object,type)方法判斷。

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
name = "hello world"
flag = isinstance(name,str)
print(flag)

isinstance 和 type 的區別在於:

  • type()不會認爲子類是一種父類類型。
  • isinstance()會認爲子類是一種父類類型。
>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

**注意:**在Python3 中,把 True 和 False 定義成關鍵字,但它們的值還是 1 和 0,它們還可以和數字相加。
您可以通過使用del語句刪除單個或多個對象。例如:

del var
del var_a, var_b

pi = 3.1415926
del pi
print(pi)		#無任何輸出,pi對象已被刪除

數值運算
基本的+ - * / %可以直接使用,//表示floor(),整除,**表示乘方運算

>>> 2 // 4 	# 除法,得到一個整數
0
>>> 2 ** 5 	# 乘方
32

複數

Python還支持複數,複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型

在這裏插入圖片描述

2. String(字符串) - 不可變數據

要理解: 索引 截取 + *

截取的語法格式和字符串一樣:變量[頭下標:尾下標]

索引值以 0 爲開始值,-1 爲從末尾的開始位置。

加號 + 是列表連接運算符,星號 * 是重複操作
圖很重要

line = "You're never wrong to do the right thing"
str = "you are right"
print(line[0:1])    #Y 從下標爲0的元素開始 截取到下標爲1的光標前

print(line[1:3])            #ou  從第2個元素開始,輸出到第3個元素  或者說 從下標爲1元素開始 輸出到下標爲3的元素之前
print(line * 2)             # 重複 輸出字符串兩次
print(line[7:12] * 2)      #nervernerver 輸出截取的字符串 兩次
print(line + str)				#連接

string是不可變數據,line[0] = ‘1’ 錯誤,不能修改字符串的值

3. List(列表)-可變數據

List(列表) 是 Python 中使用最頻繁的數據類型。

列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套)。

列表是寫在方括號 [] 之間、用逗號分隔開的元素列表。

列表的索引截取的語法和字符串一樣,列表被截取後返回一個包含所需元素的新列表。

截取的語法格式和字符串一樣:變量[頭下標:尾下標]

索引值以 0 爲開始值,-1 爲從末尾的開始位置。

加號 + 是列表連接運算符,星號 * 是重複操作

以上列表的使用語法和字符串基本完全一樣
區別在於

  • string數據不可變,而List是可變數據
  • List截取有三個參數,第三個參數設置截取的步長,第三個參數爲負表示反向截取
print("==================List(列表) - 可變數據===================")
#列表的使用和字符串string基本一樣
List = ['abcd', 678, 1.23, 'runoob', 79.321, 0.0]
Love = ["I love U"]
print(List)

print(List[0])
print(List[1:3])    #從第2個元素開始,輸出到第3個元素    #或者說 從下標爲1元素開始 輸出到下標爲3的元素之前
print(List[2:])
print(List*2)       # *是重複操作
print(List + Love)		# + 是連接操作

print("與string不同 列表可以改變數據")
List[0] = 0					#直接改變某下標的數據
List[1:4] = [1,2,3]			#改變截取一段的數據
print(List)
List[4:6] = []      #將對應的數據設置爲[],相當於刪除數據
print(List)         # 0,1,2,3
List[1:2] = []
print(List[0:])     #0,2,3

print("與string的截取不同 列表截取有三個參數,第三個參數設置步長")
arrayList = [0,1,2,3,4,5,6,7]
print(arrayList[1:5:2])     #每兩步長 截取一次 隔一個數截取一次
print(arrayList[1:8:2])     #1 3 5 7
print(arrayList[-1::-2])    #第三個參數步長爲2 負號表示反向截取 截取的起始位置是 -1,第二個參數表示截取到末尾

簡單應用List - 字符串翻轉
如,list = [1,2,3,4]
其中,list[0] = 1,list[3] = 4
則list[0] = list[-1] 就是置換
list = list[-1::-1] #則逆向從尾截取到頭 賦值給原list 就達到翻轉的翻轉的效果

#應用 翻轉字符串
def reverseWords(input):
    # 通過空格將字符串分隔符,把各個單詞分隔爲列表
    inputWords = input.split(" ")

    inputWords = inputWords[-1::-1]     #直接賦值 逆向 相當於每個元素的頭尾置換

    output = ' '.join(inputWords)      # ['coding', 'like', 'I']

    return  output

if __name__ == "__main__":
    input = "I like coding"
    rw = reverseWords(input)
    print(rw)

輸出:
coding like I

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章