Python學習筆記一(基礎知識)

      本文是小編自己學習Python的學習筆記,本着簡介方便的原則,記錄Python的主要基礎知識點,以便學習和回顧。

1.Python 的特點:

    1.1. 語法簡介,實現同樣的功能,代碼行數少;
    1.2. 作爲解釋型語言,性能與C/C++有差距,甚至比不上java,發佈代碼必鬚髮布源碼,而C等編譯類語言,只需要把編譯後的機器碼發佈即可;
    1.3. 可實現網站或遊戲後臺,網絡爬蟲工具等,YouTube、豆瓣、Google、Yahoo等都在使用Python;
    1.4. 豐富的基礎代碼庫,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容;
    1.5. Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不兼容的,本文實現都是3.X版本。

2.Python語法糖:

       本文代碼都在PyCharm中實現,並保證能夠正確執行。  Python作爲解釋型語言,是區分大小寫的,並採用Unicode編碼,能夠直接處理的數據類型,整型(任意大小),浮點型,字符串(可以使用'或",轉義字符爲"\"),布爾值(True/False),空值(none)。Python以縮進的方式區分代碼塊。           

      2.1 helloworld.py       
# 輸出hello, world!
print('hello, world!')

# 以","分割的方式打印
print('abc', 'is a', 'string')

# 計算數學表達式
print('100 + 200 =', 100 + 200)
# 輸入變量名稱
# name = input('please input name: ')
#
# print(name)

# list list是一個可變的有序表,以中括號包括
classmates = ['Lance', 'Tom', 'python']
print(classmates[-1])
print(classmates)
# 末尾添加元素
classmates.append("java")
print(classmates)
# 指定位置插入元素
classmates.insert(1, 'Jack')
print(classmates)
# 刪除指定位置元素
classmates.pop(-1)
print(classmates)
# 末尾刪除元素
classmates.pop()
print(classmates)

s = ['python', 'java', ['asp', 'php'], '.net']
print(s)
print(s[2])

# tuple一旦初始化就不能修改
classmates = ('lance', 'Tom', 'hanmeimei')
print(classmates[1])

# if ... else 條件判斷
age = 3
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')

print("#for 循環 ")

names = ['python', 'java', ['asp', 'php'], '.net']
for name in names:
    print(name)

print("#Python以縮進的方式區分代碼塊")
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    if x % 2 == 0:
        continue
    if x > 10:
        break
    sum = sum + x
print(sum)

print("#Python以縮進的方式區分代碼塊")
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
    print(sum)


print("#dict 類似於java的map,key-value的方式保存數據")
dictdata = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(dictdata.get('Michael'))
# 若不存在對應key的value的返回指定的值
print(dictdata.get('AABBCC',-1))

# Set與java中的set類似
set = set([1, 1, 2, 2, 3, 3])
print(set)

     輸出結果:   
hello, world!
abc is a string
100 + 200 = 300
python
['Lance', 'Tom', 'python']
['Lance', 'Tom', 'python', 'java']
['Lance', 'Jack', 'Tom', 'python', 'java']
['Lance', 'Jack', 'Tom', 'python']
['Lance', 'Jack', 'Tom']
['python', 'java', ['asp', 'php'], '.net']
['asp', 'php']
Tom
kid
#for 循環 
python
java
['asp', 'php']
.net
#Python以縮進的方式區分代碼塊
25
#Python以縮進的方式區分代碼塊
1
3
6
10
15
21
28
36
45
55
#dict 類似於java的map,key-value的方式保存數據
95
-1
{1, 2, 3}

3. Python內置的函數

      官方給出的文檔如下圖:

      代碼示例:function.py      

print("abs")
print("abs(-20):",abs(-20))
print("abs(-20):",abs(-12.67))

print("int()函數可以把其他數據類型轉換爲整數")
print("int('123'):",int('123'))
print("int(12.56):",int(12.56))


4. 函數定義:        

def func_abs(x):
    if not isinstance(x, (int, float)):
         # 拋出異常
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x

print(func_abs(-13))

#Python函數支持返回多個返回值

def func_abs(x,y):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if not isinstance(y, (int, float)):
        raise TypeError('bad operand type')

    if x < 0:
        x = -x

    if y < 0:
            y = -y
    return x,y


print(func_abs(-13,-128))

#空函數
def nop():
    pass  #pass爲佔位符




print("#默認參數")
# 必選參數在前,默認參數在後
def func_power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s


print(func_power(5))
print(func_power(5,3))

print("#可變參數")
#可變參數在函數調用時自動組裝爲一個tuple
def func_calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n
    return sum

print(func_calc(5,5,5))


print("#關鍵字參數")
#關鍵字參數允許你傳入0個或任意個含參數名的參數,可以擴展函數的功能
def func_person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

func_person('Bob', 35, city='Beijing')
func_person('Adam', 45, gender='M', job='Engineer')

print("#命名關鍵字參數")
# 限制關鍵字參數的名字,就可以用命名關鍵字參數,例如,只接收city和job作爲關鍵字參數

def person(name, age, *, city, job):
    print(name, age, city, job)

# 如果函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就不再需要一個特殊分隔符 * 了:

def person(name, age, *args, city, job):
    print(name, age, args, city, job)



# 在Python中定義函數,可以用必選參數、默認參數、可變參數、關鍵字參數和命名關鍵字參數,這5種參數都可以組合使用。但是請注意,參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)


print("#遞歸函數")
def func_fact(n):
    if n==1:
        return 1
    return n * func_fact(n - 1)


print(func_fact(1))
print(func_fact(5))
print(func_fact(100))




   輸出結果:
13
(13, 128)
#默認參數
25
125
#可變參數
15
#關鍵字參數
name: Bob age: 35 other: {'city': 'Beijing'}
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
#命名關鍵字參數
#遞歸函數
1
120
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000




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