while True:
print('我是小馬過河')
#四、用while從一打印到10html
#五、請經過循環,1 2 3 4 5 6 8 9 10 python
#備註:連續的對其中一個不作相同的操做(連續數字指ide
定其中一個不打印)post
#自我註解:無限循環,死循環用while。ui
小結:編碼
死循環無限循環while ;有限循環for;知足條件中止循環if知足就break;
須要輸入input;須要序列range()或定義自增循環;循環中某個不操做if知足條件continue,pass;for 用range能省去while的循環計數url
判斷變量是否是某種類型:
if type(變量) == 數據類型:(str ,list,tuple,dict)
print(數據類型)spa
#注意Python彷佛不能用i++,能夠i+=1
code
count=0 while count<10: count=count+1 print(count) #從1到10,(0,10)先自增 count=0 while count<=9: count = count + 1 print(count) #從1到10,(0,9]先自增 count=0 while count<10: count +=1 print(count) #從1到10,(0,10)先自增,自增能夠count=count+1;count+=1;若是自增爲一個變量,那麼count+=變量 count=1 while count<11: print(count) count = count + 1 #[1,11),先其它操做後自增 count=1 while count<=10: print(count) count = count + 1 #[1,10]先其它操做後自增
#給本身的建議:程序須要從幾到幾,按照第一種方式,先自增後其它,實現循環次數後再作操做,自增放在前面防止思路弄亂,方便本身閱讀。
#須要添加倒着循環的
#備註:連續的對其中一個不作相同的操做(連續數字指 定其中一個不打印) #自我註解 連續數字一個不打印至關於不等於它就打印,或者等於它就跳過本次循環後面的操做 count=0 while count<10: count=count+1 if count != 7: print(count) 先打印出1-10,而後去掉7 count=0 while count<10: count=count+1 if count == 7 : continue print(count) print(""" 1 3 4 5 6 8 9 10""") count=0 while count<10: count=count+1 if count == 7 : pass else: print(count) 6 8-10
count=0 while count<10: count = count + 1 print(count) else: print("再也不知足while的條件時,即whil返回值爲False時執行這裏,break等跳出循環的操做是否 執行else後面語句,看返回值")
#自我註解:循環(正常)結束才執行的代碼,非正常結束不執行代碼
#添加:上面爲循環作完了作什麼操做,添加一個循環作完了而後作知足某種條件的才作某種操做,不然是另外一種操做。(使用flag)
一、s% 指定佔位符寬度orm
name=["mcw","小馬過河","魔降風雲變"] print("%s和%s"%(name[0],name[1])) --------------結果: mcw和小馬過河
print("name:%s"%("mcwhr")) #指定佔位符寬度
print("name:%3s"%("mcwhr"))
print("name:%6s"%("mcwhr"))
print("name:%8s"%("mcwhr"))
print("name:%12s"%("mcwhr"))
print("name:%8.2f"%(3.1415926))
--------------結果:
print ("Name:%s Age:%d Height:%.2f"%("mcw",18,1.64)) #加-加數字,可實現幾列對齊排序
print ("Name:%-s Age:%-d Height:%-.2f"%("mcw",18,1.64))
print ("Name:%10s Age:%8d Height:%8.2f"%("mcw",18,1.64))
print ("Name:%-10s Age:%-8d Height:%-8.2f"%("mcw",18,1.64))
print ("Name:%-12s Age:%-12d Height:%-12.2f"%("mcw",18,1.64))
-------------------------結果:
問題一:%s格式化輸出缺乏傳參出現的錯誤 name=["mcw","小馬過河","魔降風雲變"] print("%s和%s"%(name[0])) --------結果: print("%s和%s"%(name[0])) TypeError: not enough arguments for format string (格式字符串的參數不足) 問題二:%s傳參數量多於接收的數量報錯 name=["mcw","小馬過河","魔降風雲變"] print("%s和%s"%(name[0],name[1],name[2])) ----------------結果: print("%s和%s"%(name[0],name[1],name[2])) TypeError: not all arguments converted during string formatting (並不是全部參數都在字符串格式化過程當中轉換)
問題三:缺乏一個右半邊括號報錯:
name=["mcw","小馬過河","魔降風雲變"]
print("%s和%s"%(name[0],name[1])
-------------結果:
SyntaxError: unexpected EOF while parsing (分析時出現意外的EOF)
二、%d #取整數
print("You have %d books"%(23.4)) ------------結果: You have 23 books %d能夠取整,而%s卻不能取整 print("You have %s books"%(23.4)) --------------結果: You have 23.4 books
三、%% #打印一個%號,要用另外一個%轉義,不要被%s的%所影響。
print("我有%s%%的把握"%(80)) -----------------結果: 我有80%的把握
四、%f #打印浮點數,以及指定打印小數位位數
print("我支付寶只有%f的餘額"%(250.25)) --------------結果: 我支付寶只有250.250000的餘額
print("我支付寶只有%.3f的餘額"%(250.25))
-------------結果:
我支付寶只有250.250的餘額
#%f能夠打印出後面的浮點數,彷佛是6位小數。而%s寫的啥就輸出的啥
print("我支付寶只有%s的餘額"%(250.25))
--------------結果: 我支付寶只有250.25的餘額
參考:https://www.cnblogs.com/claidx/p/7253288.html
字符串格式化存在的意義
name = input('姓名:') do = input('在幹什麼:') template = "%s在教室,%s。" %(name,do,) print(template)
直接作佔位符
template = "我是%s,年齡%s, 職業%s。" %("mcw",73,'講雞湯',)
print(template)
template = "我是%s,年齡%d, 職業%s。" %("mcw",73,'講雞湯',)
print(template)
name = 'mcw'
template = "%s如今手機的電量是100%%" %(name,)
print(template)
佔位符%s既能夠表示字符串str,還能夠表示整數int,浮點數float;
佔位符%d既能夠表示整數int,還能夠表示浮點數float(去除整數部分)
佔位符%f既能夠表示浮點數float,還能夠表示整數int(默認保留6位小數)
注意:若想自主保留n位小數,可將其表示位%.nf
自我註解:格式化輸出"%s"%(傳的值),打印%就要再加一個%
問題:若是後面%s和後面的參數個數不一致會是什麼狀況?
pycharm改解釋器版本
count=0
while count<100:
count=count+1
if count%2 != 0:
print(count)
#自我註解:除以2取餘爲0的是偶數。條件可得偶數,須要奇數,條件取反就得奇數。
count=0 sum=0 while count<100: count=count+1 sum=sum+count print(sum)
#註解:count自增實現循環,sum將每次循環的count加到sum裏,實現count1-100的循環求和
zongshu=0 num=1 while num<11: if num==1: zongshu=zongshu+num elif num !=1: b=num%2 if b==False: zongshu=zongshu+num elif b==True: zongshu=zongshu-num num=num+1 print(zongshu)
bool() 數字和字符串轉布爾類型,0和空字符串是False,空格是True.布爾值轉換數字爲0和1,轉換爲字
符串爲字符串。 int() 字符串轉數字,數字轉字符串 str()
#須要增長數據類型轉換
#注意:彷佛由此判斷變量的值,而後對值進
"""
對於 or,若是有遇到 value= 1 or 9 第一個值若是是轉換成布爾值若是是真,則value=第一值。 第一個值若是是轉換成布爾值若是是假,則value=第二值。 若是有多個or條件,則從左到右依次進行上述流程。 示例: v1 = 0 or 1 v2 = 8 or 10 v3 = 0 or 9 or 8 """
#註解:or遇到假,日後走,遇到第一個真,就返回這個值。遇到全爲假,返回最後那個值 $找真找到就停
v1= 0 or 0 or False v2=0 or False or 0 print(v1,v2)
""" 對於and,若是遇到 value= 1 and 9 這種狀況 若是第一個值轉換成布爾值是True,則value=第二個值。 若是第一個值轉換成布爾值是False,則value=第一個值。 若是有多個and條件,則從左到右依次進行上述流程。
#註解:and遇到假就停,返回假的值。沒有假,返回最後一個值 $找假,找到就停
示例:
v1 = 1 and 9 v2 = 1 and 0 v3 = 0 and 7 v4 = 0 and "" v5 = 1 and 0 and 9 j_str = "v1=%s v2=%s v3=%s v4=%s v5=%s" %(v1,v2,v3,v4,v5) print(j_str) #v1=9 v2=0 v3=0 v4=0 v5=0
行判斷作對應的操做 第一個值轉換布爾值若是是真,則value=第一個值 第一個值轉換布爾值若是是假,則value=第二個值 若是有多個or條件,則從左到右依次
從左到右進行判斷,遇到真即中止繼續判斷
and 遇到0就0,遇到空就空,都麼遇到就是最後那個,同時遇到誰在前就是誰?
unicode如今基本ecs4,小表情ecs4,ecs2不包括 gbk gb2312,其中一個是另外一個的升級,多一點。兩者用兩個字節存儲漢字。 不少開源組件是國外的,用的是utf-8,建議用utf-8的編碼