python是一門動態解釋型的強類型定義語言(先編譯後解釋) 動態類型語言 動態類型的語言編程時,永遠也不用給任何變數指定數據類型,該語言會在你第一次賦值給變數時,在內部將數據類型記錄下來 解釋型 程式每執行到源程式的某一條指令,則會有一個稱之為解釋程式的外殼程式將源代碼轉換成二進位代碼以供執行,總 ...
python是一門動態解釋型的強類型定義語言(先編譯後解釋)
動態類型語言
動態類型的語言編程時,永遠也不用給任何變數指定數據類型,該語言會在你第一次賦值給變數時,在內部將數據類型記錄下來
解釋型
程式每執行到源程式的某一條指令,則會有一個稱之為解釋程式的外殼程式將源代碼轉換成二進位代碼以供執行,總言之,就是不斷地解釋、執行、解釋、執行
強類型
一旦一個變數被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了
優點:效率高,團隊開發,移植,拓展,嵌入
缺點:速度慢,不能加密,禁止多線程並行進程
告訴解釋器用什麼編碼執行
#!/usr/bin/env python
# -*- coding: utf-8 -*-
進位
二進位 01
八進位 01234567
十進位 0123456789
十六進位 0123456789ABCDEF
註釋
#單行註釋
'''多行註釋'''
用戶輸入:input('用戶輸入內容')
列印屏幕
name = 'sunlizhao'print('I am %s'%(name)) %s是字元串 %d是數字 %f是浮點型 數據類型 數字 int(整型),long(長整形),float(浮點型),complex(負數) 布爾 真或假, 1或0, true或false 字元串 name = 'sunlizhao' print('I am %s'%(name)) %s是字元串 %d是數字 %f是浮點型
字元串操作:
name.capitalize() 首字母大寫 name.casefold() 大寫全部小寫 name.center(50,'-') 在name的兩邊輸出 - 字元 name.count('s') 統計s出現的次數 name.encode() 字元編碼為bytes格式 name.endswith('lz') 判斷字元串是否為lz結尾 's\tlz'.expandtabs(10) 講\t轉換為多長的空格 name.find('sl') 查找sl,找到返回其索引, 找不到返回-1format :
>>> msg = "my name is {}, and age is {}"
>>> msg.format("alex",22)
'my name is alex, and age is 22'
>>> msg = "my name is {1}, and age is {0}"
>>> msg.format("alex",22)
'my name is 22, and age is alex'
>>> msg = "my name is {name}, and age is {age}"
>>> msg.format(age=22,name="ale")
'my name is ale, and age is 22'
format_map
>>> msg.format_map({'name':'alex','age':22})
'my name is alex, and age is 22'
num1 = [11,22,33]
num2 = (11,22,33)
#num3 = {'a' = 11, 'b' = 22, 'c' = 33}
myStr = 'hello word itcast and'
#字元串操作
print (myStr)
print(myStr.find("word"))#找不到返回-1,找到返回下標
print(myStr.rfind("itcast"))#從右面查找,返回下表
print(myStr.index('word'))#同find,找不到會出現異常
print(myStr.rindex("itcast"))#同find
print(myStr.count('e'))#查找出現的次數
print(myStr.replace('word','Word',1))#將word替換為Word(從左到右替換一個)
print(myStr.split(' '))#將字元串中的空格切割掉
print(myStr.capitalize())#字元串第一個字元大寫
print(myStr.title())#首字母大寫
print(myStr.lower())#所有大寫字元轉換為小寫
print(myStr.upper())#所有小寫字母轉換為大寫
lyric = " 想陪你一起看大海 "
print(lyric.center(50))#在50個字元中居中
print(lyric.ljust(50))#靠左
print(lyric.rjust(50))#靠右
print(lyric.strip())#清除左右兩側空格
print(lyric.lstrip())#清楚左側空格
print(lyric.rstrip())#清楚右側空格
print(lyric.partition("一起"))#以'一起'為中心分割成三段
print(lyric.rpartition("一起"))#從右邊開始查找(元組)
file_name = "xxxx.txt"
print(file_name.endswith(".txt"))#判斷是否是.txt為尾碼
print(file_name.startswith("xxxx"))#判斷是否是xxxx為開頭
numbe = "q"
print(numbe.isalpha())#判斷是否是字母
print(numbe.isdigit())#判斷是否是數字
print(numbe.isalnum())#判斷是否是數字或者字母
print(numbe.isspace())#判斷是否是純空格
a = ["aa","bb","cc"]
b = " "
print(" ".join(a))#將a中的字元串用b連接起來
列表,元祖操作
定義列表 names = ['孫禮昭','slz','sunlizaho'] 下標從0開始names[0],names[1],names[2] 倒取從-1開始 names[-1],names[-2],names[-3] 切片:取多個元素 步長為2 names[::2] 如果想取到最後一個元素,不能寫-1 names[0:] 追加: 從最後添加 names.append('我是新來的') 插入: 通過索引插入 names.insert(0,'我是第一') 修改: 通過索引修改 names[0] = '我才是第一' 刪除: 強刪list def names 清空list names.clear() 按照下標刪除元素內容 def names[0] names[0] = [] 刪除指定元素 names.remove('slz') 刪除列表最後一個值 names.pop() 拓展: list1的內容添加到names的後面 names.extend(list1) 統計: 統計names中slz出現的次數 names.count('slz') 排序/翻轉: 按照ascll碼排序,註意py3不同數據類型不能排序 names.sort() 將整個list倒序(不排只倒) names.reverse() 獲取下標: 根據元素內容獲取下標(只返回找到的第一個) names.index('slz') 元組:tuple一旦創建,不得修改 t = (a,b,[c,d]) tt = t[2] tt[0] = e tt[1] = f print(tt) 不是說不能變嗎? 現在為什麼又可以變了呢! tuple的不變是指向不變,指向的list不能變,但是裡面的內容是可以更改的