pythonwithelse
1. 如何串聯python知識點
1)避免『\n'等特殊字元的兩種方式:
a)利用轉義字元『\'b)利用原始字元『r' print r'c:\now'
2)單行注釋,使用一個#,如:
#hello Python多行注釋,使用三個單引號(或三個雙引號),如:'''hello pythonhello world'''或"""hello pythonhello world"""另外跨越多行的字元串。也可以使用三個單引號或三個雙引號,如:'''......'''或者"""......"""
3)字元串中嵌入雙引號等特殊符號
a)利用轉義字元『\'b)使用單引號括起這個字元串。print ('i l"o"ve fis.com')
4)條件分支:
if condition: 條件為真執行的操作 else: 條件為假執行的操作 if condition: action elif condition: action else: action python可以有效避免「懸掛else」(if else對應關系出錯)條件表達式(三元操作符) small = x if x<y else y 如果x<y ,small=x.否則small=y斷言assert:當這個關鍵字後面的條件為假,程序自動崩潰並拋出異常 assert 3>4 可以利用他置入檢查點
5)while條件:
條件為真執行的操作 for 目標 in 表達式:循環體 例:favorite='fishc' for i in favorite: print(i,end='') range([start,] stop[,step=1])生成一個從start參數的值到stop參數值的數字序列 break:終止當前循環體。跳到外層程序continue:終止本輪循環,開始下一輪循環(if condition true)
6)and邏輯操作符可以將任意表達式連接在一起,並得到一個布爾類型值
7)引入外援:
a)random模塊b)randint(),返回一個隨機的整數import random 或 from random import randint()secret=random.randint(1,10)
8)python數據類型
a)數值類型:整型、布爾類型、浮點型、e記法(1.5e10)b)類型轉換: int()轉換為整數 str()轉換為字元串 float()轉換為浮點數c)獲取關於類型的信息: type()函數 a=520 type(a) isinstance()函數 a=12 isinstance(a,int) --->返回true isinstance(a,str) -->返回false
9)Python值常用操作符
+ - * / % **(冪運算) //(地板除法,結果偏小)比較操作符 > < >= <=邏輯操作符 and or not 優先順序: 冪運算** 正負號 + - 算術操作符 * / // + - 比較操作符 < > = 邏輯擦作福 not and or
10)列表-->可以把整數、浮點數、字元串等打包在一起。數組卻不能
創建一個普通列表: member = ['小甲魚','小布丁','黑夜']創建一個混合列表: mix=[1,'小甲魚',3.12,[1,2,3]]創建空列表: empty=[]向列表添加元素: append(): member.append('福祿娃')-->只能添加一個。末尾添加 extend(): member.extend(['test','test1'])-->只能以列表形式添加.末尾添加 insert(): member.insert(1,'牡丹')-->第一位插入牡丹列表中獲取元素:使用索引index。 mix[1]列表中刪除元素:使用remove()。 mix.remove('小甲魚') 使用del。 del mix[3]/mix 使用pop()。 mix.pop()/mix.pop(1)列表切片:使用slice。 mix[1:4]/mix[1:]/mix[:4]列表操作符:>,and,+,*,in/not in列表的小夥伴:dir(list) mix.count('小甲魚') mix.index('小甲魚')列表逆序:使用reverse。 mix.reverse()列表排序:使用sort。 mix.sort() mix.sort(func,key) mix.sort(reverse=True)
11)元組--->不可改變的列表
和列表的主要不同點:a)創建和訪問一個元組: 大部分用()/, ;列表用[]b)元組不可修改數值c)更新和刪除一個元組:temp = temp[:2] + ('test3',) + temp[2:] del tempd)IN/NOT IN,關系操作符,邏輯操作符,乘號操作符,連接操作符
12)字元串的各種內置方法
str1='i love fishc.com'a=str1[:6] + '插入的字元串'+str1[6:]capitalize(): str2.capitalize()casefold()--->全部小寫 str2.casefold()center(width)-->居中,不足空格填充count(sub[,start[,end]])-->返回sub在string中出現的次數endswith(sub[,start[,end]])-->以sub結束?startswith(prefix[,start[,end]])-->以prefix開頭expandtabs([tabsize=8])-->將tab鍵轉換為空格find(sub[,start[,end]])-->sub是否在字元串中出現rfind(sub)...index(sub[,start[,end]])-->跟sub一樣,不過會產生異常rindex(sub..).....istitle()/isupper()/ljust(width)/lower()/strip()/title()/lower()join(sub):以字元串做分隔符,分割subpartion(sub):找到子字元串sub,把字元串分成一個3元組replace(old,new[,count])split(sep=none,maxsplit=-1)-->不帶參數以空格做分隔符swapcase()-->字元串大小寫翻轉zfill(width)-->返回長度為width的字元串,不夠補充空格
13)字元串格式化 replacement
"{0} love {1}.{2:.2f}".format("i","fishc",3.1424)"{a} love {b}.{c}".format(a="i",b="fishc",c="com")"{0} love {b}.{c}".format("i",b="fishc",c="com")格式化符號含義: %c:格式化字元及其ASCII碼 '%c %c %c' % (97,98,99) %s:格式化字元串 %d:格式化整數 %o:格式化無符號八進制數 %x:格式化無符號十六進制數 %X:...(大寫) %f:格式化定點數,可指定小數點後的精度 %e:用科學技術發格式化定點數===%E %g:根據值的大小決定使用%f或%e===%G格式化操作符輔助命令: m.n :m是顯示的最小總寬度,n是小數位精度 - :用於左對齊 + :在正數面前添加正號 # :在八進制面前顯示0,在十六進制面前顯示0x 0 :空格用0填充字元串轉義字元 \a:發出系統響鈴聲 \b、\t、\n
14)序列
列表、元組和字元串的共同點: a)都可以通過索引 b)索引值從零開始內置方法: list()-->help-->轉換為序列 list() a=list() list(iterable) b='i love fishc.com' b=list(b) tuple([iterable])-->把一個可迭代對象轉換為元組 b=tuple(b) str(obj)-->把obj對象轉換為字元串 len(obj)-->返回obj的長度 max(序列/元組) / min(序列/元組) sum(iterable[,start=0])-->返回序列iterable。。的總和 sorted(序列/元組)-->排序 reversed(序列/元組)-->返回一個迭代器對象 list(reversed(序列/元組))-->返回序列 enumerate(序列/元組)-->返回一個迭代器對象 list(enumerate(序列/元組))-->返回數組形式列表 zip(a,b)-->合並成以元組形式的列表 list(zip(a,b))
15)函數
定義:def Myfunction(): print('this is my first function')調用:Myfunction()函數的參數: def Myfunction(name,age): print(name+age+'test') Myfunction('gncao',『age')函數的返回值: return value形參(parameter):函數定義時的參數實參(argument):實際傳遞的參數函數文檔:在函數中實現在函數體中用 '' 或 #查看函數文檔: a) functionname.__doc__ (四個下劃線) b) help(functionname)關鍵字參數:避免參數出亂 def Myfunction(words,name): ...... Myfunction(words='words123',name='name123') 默認參數: def Myfunction(name='name123',words='words123') ...... 收集參數:在參數前面加上*號 def test(*params): print('參數的長度是:',len(params)) print('第二個參數是:',params[1]) test(1,'小甲魚',2,4,5,6,7) def test(*params,exp): print('參數的長度是:',len(params),exp) print('第二個參數是:',params[1]) test(1,'小甲魚',23,4,2,5,7,exp=0)
16)函數有返回值,過程沒有返回值
17)函數變數作用域(可見性)
局部:local-->函數內部定義的變數,局部可用全局:global-->全局可訪問當在函數內部試圖修改全局變數時,則會在函數內部新建一個跟 全局變數名相同的局部變數
18)內嵌函數和閉包
global關鍵字: def myfun(): global count ->>>全局變數 count=10 print(count)內嵌函數: def fun1(): print('fun1()正在被調用...') def fun2(): print('fun2()正在被調用') fun2()只能通過fun1()訪問fun2()閉包:在一個內部函數中,對外部函數的變數的引用。成內部函數為閉包 def funx(x): def funy(y): return x * y return funy調用方式: i=funx(8) i(5) 或 funx(4)(5) 通過關鍵字nonlocal可以使得內部函數調用外部函數變數。 def fun1(): x=5 def fun2(): nonlocal x x*=x return x return fun2()
19,遞歸:
recursion() def fac(n): if n==1: return 1 else: return n*fac(n-1) number=int(input('請輸入一個整數:')) result=fac(number) print('%d 的階乘是:%d' % (number,result)) 迭代方法:def fab(n): n1=1 n2=1 n3=1 if n <1: print('輸入有錯') return -1 while ( n-2>0 ): n3=n2+n1 n1=n2 n2=n3 n-=1 return n3 result=fab(20)if result != -1: print('總共有%d對小兔子誕生:' % result) 遞歸方法:def fab(n): if n < 1: print('error') return -1 if n==1 or n==2: return 1 else: return fab(n-1) + fab(n-2) result=fab(20)print('總共有%d對兔子誕生' % result) 但是遞歸的效率比較低
20)字典(key-value)映射/序列例1:dict1={'李寧':'一切皆有可能','耐克':'just do it','阿迪達斯':'impossible is nothing'} print('李寧的口號是:',dict1['李寧']) 例2:dict3=dict((('f',70),('i',105))) 例3:dict4=dict(小甲魚='編程改變世界',test='test')dict4['小甲魚']='修改小甲魚對應的value' -->如果沒有該KEY,則會自動添加一個KEY 字典的內建方法:a)dict2['key']-->訪問字典的元素b)fromkeys(s[,v]) -->創建或查詢keydict1.fromkeys((1,2,3)){1: None, 2: None, 3: None}dict1.fromkeys((1,2,3),'number'){1: 'number', 2: 'number', 3: 'number'}c)keys()-->dict.keys() -->列印出dict的所有keyvalues()-->dict.values() -->列印出dict的所有valueitems()-->dict.items() -->列印出dict所有(key,value)get()--> dict.get(key) -->列印key對應的valuedict.get(key,'text')-->列印key對應的value,如果不存在,則列印textin操作符 --> key in dict2clear() -->dict.clear() -->清空dict的數據() -->b=a.() -->拷貝字典id(a)-->查看idpop(key) --> dict.pop(key) -->彈出keypopitem() -->dict.popitem() -->隨機彈出keysetdefault() -->dict.setdefault(key) -->新建keyupdate() -->dict.update(dict) -->更新字典
2. python中可以使用if作為變數名嗎
不可以,if為python保留的字元
下面的列表顯示了在 Python 中的保留字。這些保留字不能用作常數或變數,或任何其他標識符名稱,所有 Python 的關鍵字只包含小寫字母。
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
3. python2.x中31個關鍵字分別是什麼意思
Python 2 has 31 keywords:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
In Python 3, exec is no longer a keyword, but nonlocal is.
更詳細解釋參見:http://blog.csdn.net/wangeen/article/details/8676547
4. python關鍵字有哪些
paython的關鍵字有and、or、not(邏輯運算符);if、elif、else(條件語句);for、while(循環語句);True、False(布爾變數);continue、break(循環控制)等。
一、and、or、not(邏輯運算符)
and:如果兩個語句都返回True,則返回值將僅為True,否則它將返回False。
or:如果其中一條語句返回True,則返回值為True,否則它將返回False。
not:如果語句不是True,則返回值為True,否則返回False。
5. PYTHON的問題
沒調試,而且英文不太行,不知道是不是這樣
就是從一個文件里讀出所有的溫度,然後輸出一個由最低溫度和最高溫度組成的列表?
#from file getting lowest and highest temperature
import os
import sys
import re
lowHigh = []
if not os.path.exists(sys.argv[1]):
lowHigh = []
else:
with open(sys.argv[1], 'r') as f:
fCon = f.readlines()
tempList = [re.split(r's+', x.strip())[-1] for x in fCon]
lowHigh = [min(tempList), max(tempList)]
print lowHigh
6. 如何用python 中with 用法
要使用 with 語句,首先要明白上下文管理器這一概念。有了上下文管理器,with 語句才能工作。
下面是一組與上下文管理器和with 語句有關的概念。
上下文管理協議(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持
該協議的對象要實現這兩個方法。
上下文管理器(Context Manager):支持上下文管理協議的對象,這種對象實現了
__enter__() 和 __exit__() 方法。上下文管理器定義執行 with 語句時要建立的運行時上下文,
負責執行 with 語句塊上下文中的進入與退出操作。通常使用 with 語句調用上下文管理器,
也可以通過直接調用其方法來使用。
運行時上下文(runtime context):由上下文管理器創建,通過上下文管理器的 __enter__() 和
__exit__() 方法實現,__enter__() 方法在語句體執行之前進入運行時上下文,__exit__() 在
語句體執行完後從運行時上下文退出。with 語句支持運行時上下文這一概念。
上下文表達式(Context Expression):with 語句中跟在關鍵字 with 之後的表達式,該表達式
要返回一個上下文管理器對象。