日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区...

發布時間:2023/12/10 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載安裝python以及相關軟件。

python

直接到python官網下windows-msi文件,版本根據需要下2.7或3.0。

pydev

自己網上搜,pydev官網的反而不行(eclipse上安裝失敗)。

java

oracle官網

eclipse

eclipse官網

配置pydev

新建一個Python Interpreter,選擇python安裝目錄的Python.exe

python基礎

數據類型

整數

Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。

計算機由于使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮點數

浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四舍五入的誤差。

字符串

字符串是以’‘或”“括起來的任意文本,比如’abc’,”xyz”等等。請注意,’‘或”“本身只是一種表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c這3個字符。如果’本身也是一個字符,那就可以用”“括起來,比如”I’m OK”包含的字符是I,’,m,空格,O,K這6個字符。

如果字符串內部既包含’又包含”怎么辦?可以用轉義字符來標識,比如:

‘I’m “OK”!’ 表示的字符串內容是:

I’m “OK”!

轉義字符可以轉義很多字符,比如n表示換行,t表示制表符,字符本身也要轉義,所以\表示的字符就是。

>>> print 'I\'m ok.'

I'm ok.

>>> print 'I\'m learning\nPython.'

I'm learning

Python.

>>> print '\\\n\\'

\\

如果字符串里面有很多字符都需要轉義,就需要加很多,為了簡化,Python還允許用r’‘表示’‘內部的字符串默認不轉義。

>>>print '\\\t\\'

\ \

>>>print r'\\\t\\'

\\\t\\

布爾值

布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要么是True,要么是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來。

布爾值可以用and、or和not運算。

and運算是與運算,只有所有都為True,and運算結果才是True。

or運算是或運算,只要其中有一個為True,or運算結果就是True。

not運算是非運算,它是一個單目運算符,把True變成False,False變成True。

空值

空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

此外,Python還提供了列表、字典等多種數據類型,還允許創建自定義數據類型。

變量

沒啥可講的,和所有語言都一樣。

常量

所謂常量就是不能變的變量,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變量名表示常量:

PI = 3.14159265359 但事實上PI仍然是一個變量,Python根本沒有任何機制保證PI不會被改變,所以,用全部大寫的變量名表示常量只是一個習慣上的用法。

不可變的類型都是常量, 整數,小數,字符串等。

字符編碼

編碼有很多種,ASCII,utf8,gbk,等等。

Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。

但unicode占用空間較多。

字符串

因為Python的誕生比Unicode標準發布的時間還要早,所以最早的Python只支持ASCII編碼,普通的字符串’ABC’在Python內部都是ASCII編碼的。Python提供了ord()和chr()函數,可以把字母和對應的數字相互轉換:

>>>ord('A')

65

>>>chr(65)

'A'

Python在后來添加了對Unicode的支持,以Unicode表示的字符串用u’…’表示,比如:

>>>print u'中文'

中文

>>>u'中'

u'\u4e2d'

寫u’中’和u’u4e2d’是一樣的,u后面是十六進制的Unicode碼。因此,u’A’和u’u0041’也是一樣的。

兩種字符串如何相互轉換?字符串’xxx’雖然是ASCII編碼,但也可以看成是UTF-8編碼,而u’xxx’則只能是Unicode編碼。

把u’xxx’轉換為UTF-8編碼的’xxx’用encode(‘utf-8’)方法:

>>>u'ABC'.encode('utf-8')

'ABC'

>>>u'中文'.encode('utf-8')

'\xe4\xb8\xad\xe6\x96\x87'

英文字符轉換后表示的UTF-8的值和Unicode值相等(但占用的存儲空間不同),而中文字符轉換后1個Unicode字符將變為3個UTF-8字符,你看到的xe4就是其中一個字節,因為它的值是228,沒有對應的字母可以顯示,所以以十六進制顯示字節的數值。len()函數可以返回字符串的長度:

>>>len(u'ABC')

3

>>>len('ABC')

3

>>>len(u'中文')

2

>>>len('\xe4\xb8\xad\xe6\x96\x87')

6

反過來,把UTF-8編碼表示的字符串’xxx’轉換為Unicode字符串u’xxx’用decode(‘utf-8’)方法:

>>>'abc'.decode('utf-8')

u'abc'

>>>'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

u'\u4e2d\u6587'

>>>print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

中文

由于Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行::

#!/usr/bin/env python

# -*- coding: utf-8 -*-

格式化

在Python中,采用的格式化方式和C語言是一致的,用%實現,舉例如下:

>>>'Hello, %s' % 'world'

'Hello, world'

>>>'Hi, %s, you have $%d.' % ('Michael', 1000000)

'Hi, Michael, you have $1000000.'

你可能猜到了,%運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,后面就跟幾個變量或者值,順序要對應好。如果只有一個%?,括號可以省略。

常見的占位符有:

%d 整數 %f 浮點數 %s 字符串 %x 十六進制整數 其中,格式化整數和浮點數還可以指定是否補0和整數與小數的位數:

>>>'%2d-%02d' % (3, 1)

' 3-01'

>>>'%.2f' % 3.1415926

'3.14'

如果你不太確定應該用什么,%s永遠起作用,它會把任何數據類型轉換為字符串:

>>>'Age: %s. Gender: %s' % (25, True)

'Age: 25. Gender: True'

對于Unicode字符串,用法完全一樣,但最好確保替換的字符串也是Unicode字符串:

>>>u'Hi, %s' % u'Michael'

u'Hi, Michael'

有些時候,字符串里面的%是一個普通字符怎么辦?這個時候就需要轉義,用%%來表示一個%:

>>>'growth rate: %d %%' % 7

'growth rate: 7 %'

list

list 是Python內置的一種數據類型是列表。list是一種有序的集合(有序的意思就是你可以給它排序),可以隨時添加和刪除其中的元素。

比如,列出班里所有同學的名字,就可以用一個list表示:

>>>classmates = ['Michael', 'Bob', 'Tracy']

>>>classmates

['Michael', 'Bob', 'Tracy']

用len()函數可以獲得list元素的個數。

當索引超出了范圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最后一個元素的索引是len(classmates) - 1。

如果要取最后一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最后一個元素:

>>>classmates[-1]

'Tracy'

以此類推,可以獲取倒數第2個、倒數第3個。

使用append(數據)方法往list中追加元素到末尾。

使用insert(索引,數據)方法插入數據到指定的位置。

使用pop()刪除末尾元素。

使用pop(索引)方法,刪除指定位置的元素。

list里面的元素的數據類型也可以不同,比如:

>>>l = ['Apple', 123, True]

list元素也可以是另一個list,比如:

>>>s = ['python', 'java', ['asp', 'php'], 'scheme']

tuple

另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

>>>classmates = ('Michael', 'Bob', 'Tracy')

也可以稱tuple為一個特殊的list,只是list中的值不能修改。

tuple中的元素本身是可以改變的:

>>> t = ('a', 'b', ['A', 'B'])

>>> t[2][0] = 'X'

>>> t[2][1] = 'Y'

>>> t

('a', 'b', ['X', 'Y'])

dict

Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度。

為什么dict查找速度這么快?因為dict的實現原理和查字典是一樣的。假設字典包含了1萬個漢字,我們要查某一個字,一個辦法是把字典從第一頁往后翻,直到找到我們想要的字為止,這種方法就是在list中查找元素的方法,list越大,查找越慢。

第二種方法是先在字典的索引表里(比如部首表)查這個字對應的頁碼,然后直接翻到該頁,找到這個字,無論找哪個字,這種查找速度都非???#xff0c;不會隨著字典大小的增加而變慢。

dict就是第二種實現方式,給定一個名字,比如’Michael’,dict在內部就可以直接計算出Michael對應的存放成績的“頁碼”,也就是95這個數字存放的內存地址,直接取出來,所以速度非???。

你可以猜到,這種key-value存儲方式,在放進去的時候,必須根據key算出value的存放位置,這樣,取的時候才能根據key直接拿到value。

把數據放入dict的方法,除了初始化時指定外,還可以通過key放入:

>>>d['Adam'] = 67

>>>d['Adam']

67

由于一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值覆蓋掉。

如果key不存在,dict就會報錯,要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:

>>>'Thomas' in d

False

二是通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')

>>> d.get('Thomas', -1)

-1

注意:返回None的時候Python的交互式命令行不顯示結果。

要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除

和list比較,dict有以下幾個特點:

查找和插入的速度極快,不會隨著key的增加而增加; 需要占用大量的內存,內存浪費多。 而list相反:

查找和插入的時間隨著元素的增加而增加; 占用空間小,浪費內存很少。 所以,dict是用空間來換取時間的一種方法。

dict可以用在需要高速查找的很多地方,在Python代碼中幾乎無處不在,正確使用dict非常重要,需要牢記的第一條就是dict的key必須是不可變對象。

這是因為dict根據key來計算value的存儲位置,如果每次計算相同的key得出的結果不同,那dict內部就完全混亂了。這個通過key計算位置的算法稱為哈希算法(Hash)。

要保證hash的正確性,作為key的對象就不能變。在Python中,字符串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key:

>>> key = [1, 2, 3]

>>> d[key] = 'a list'

Traceback (most recent call last):

File "", line 1, in

TypeError: unhashable type: 'list'

這點和Java很不相同。

set

set和dict類似,也是一組key的集合,但不存儲value,和Java的HashSet一樣。由于key不能重復,所以,在set中,沒有重復的key。

要創建一個set,需要提供一個list作為輸入集合:

>>> s = set([1, 2, 3])

>>> s

set([1, 2, 3])

注意,傳入的參數[1, 2, 3]是一個list,而顯示的set([1, 2, 3])只是告訴你這個set內部有1,2,3這3個元素,顯示的[]不表示這是一個list。

重復元素在set中自動被過濾:

>>> s = set([1, 1, 2, 2, 3, 3])

>>> s

set([1, 2, 3])

通過add(key)方法可以添加元素到set中,可以重復添加,但不會有效果:

>>>s.add(4)

>>>s

set([1, 2, 3, 4])

>>>s.add(4)

>>>s

set([1, 2, 3, 4])

通過remove(key)方法可以刪除元素。

set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、并集等操作:

>>> s1 = set([1, 2, 3])

>>> s2 = set([2, 3, 4])

>>> s1 & s2

set([2, 3])

>>> s1 | s2

set([1, 2, 3, 4])

set和dict的唯一區別僅在于沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因為無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重復元素”。試試把list放入set,看看是否會報錯。

條件判斷

和所有語言一樣

只需注意以下幾點:

else if可以簡寫成elif

判斷條件可以是非布爾類型,只要是非零數值、非空字符串、非空list等,就判斷為True,否則為False,這點和PHP一樣。

循環

Python的循環有兩種,一種是for…in循環,依次把list、tuple、dict中的每個元素迭代出來,看例子::

names = ['Michael', 'Bob', 'Tracy']

for name in names:

print name

for循環可以同時使用兩個甚至多個變量,比如dict的iteritems()可以同時迭代key和value:

>>>d = {'x': 'A', 'y': 'B', 'z': 'C' }

>>>for k, v in d.iteritems():

print k, '=', v

y = B

x = A

z = C

Python提供一個range()函數,可以生成一個整數序列,比如range(5)生成的序列是從0開始小于5的整數。

第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現::

i= 0

while i

print names[i]

i++

切片

取一個list或tuple的部分元素是非常常見的操作。比如,一個list如下:

>>>L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

>>>L[0:3]

['Michael', 'Sarah', 'Tracy']

L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。

如果第一個索引是0,還可以省略:

>>> L[:3]

同樣支持倒數切片:

>>>L[-2:]

['Bob', 'Jack']

>>>L[-2:-1]

['Bob']

前10個數,每兩個取一個:

>>>L = range(100)

>>>L[:10:2]

[0, 2, 4, 6, 8]

所有數,每5個取一個:

>>> L[::5]

[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

甚至什么都不寫,只寫[:]就可以原樣復制一個list:

>>> L[:]

[0, 1, 2, 3, ..., 99]

字符串’xxx’或Unicode字符串u’xxx’也可以看成是一種list,每個元素就是一個字符。因此,字符串也可以用切片操作,只是操作結果仍是字符串:

>>>'ABCDEFG'[:3]

'ABC'

>>>'ABCDEFG'[::2]

'ACEG'

在很多編程語言中,針對字符串提供了很多各種截取函數,其實目的就是對字符串切片。Python沒有針對字符串的截取函數,只需要切片一個操作就可以完成,非常簡單。

列表生成式

列表生成式是Python內置的非常簡單卻強大的可以用來創建list的生成式。

舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):

>>> range(1, 11)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

但如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?

>>>[x * x for x in range(1, 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

寫列表生成式時,把要生成的元素x * x放到前面,后面跟for循環,就可以把list創建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。

for循環后面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:

>>>[x * x for x in range(1, 11) if x % 2 == 0]

[4, 16, 36, 64, 100]

還可以使用兩層循環,可以生成全排列:

>>>[m + n for m in 'ABC' for n in 'XYZ']

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

運用列表生成式,可以寫出非常簡潔的代碼。例如,列出當前目錄下的所有文件和目錄名,可以通過一行代碼實現:

>>>import os # 導入os模塊

>>>[d for d in os.listdir('.')] # os.listdir可以列出文件和目錄

['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']

列表生成式也可以使用兩個變量來生成list:

>>>d = {'x': 'A', 'y': 'B', 'z': 'C' }

>>>[k + '=' + v for k, v in d.iteritems()]

['y=B', 'x=A', 'z=C']

最后把一個list中所有的字符串變成小寫:

>>>L = ['Hello', 'World', 'IBM', 'Apple']

>>>[s.lower() for s in L]

['hello', 'world', 'ibm', 'apple']

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人激情 | 国产又粗又长又大 | 奶妈的诱惑 | 91精品一区二区三区四区 | 老熟妇一区二区三区 | 一亲二脱三插 | 中国在线观看片免费 | 精品一区二区三区免费 | av三级在线播放 | 天堂аⅴ在线最新版在线 | 一本色道久久88亚洲精品综合 | 亚洲少妇一区二区三区 | 亚洲日本japanese丝袜 | 在线观看av的网站 | 欧美三级视频 | 婷婷.com | 欧美日韩专区 | 清清草视频| 怡红院成人影院 | a免费在线观看 | aaaa毛片 | 欧美放荡办公室videos4k | 大桥未久av一区二区三区中文 | 日韩va在线观看 | 国产日韩视频在线 | 亚洲a影院 | 青青草一区二区 | 中文字幕超清在线免费观看 | 午夜一区 | 亚洲av久久久噜噜噜熟女软件 | 可以免费看黄的网站 | 毛片网站在线看 | 亚欧成人 | 亚洲手机在线观看 | 欧美一区影院 | 一本高清视频 | 特级精品毛片免费观看 | 欧美成人三级在线 | 黄色特级毛片 | 天堂国产精品 | 久久国产精品国产精品 | www.av在线.com | 亚洲码中文 | 国偷自产视频一区二区久 | 幸福宝在线观看 | 亚洲逼 | 五月婷婷av| 91久久国产综合久久 | 久久久久久不卡 | 国产日韩在线观看一区 | 免费成人深夜夜行网站视频 | 三级免费网站 | 国产精品一区免费观看 | 日韩欧美在线精品 | 日韩精品一区二区在线视频 | 国产乱淫av麻豆国产免费 | 日本视频在线观看 | 久久久久婷 | 欧美成人精品一区二区男人看 | 精品国产欧美 | 国产精品jizz在线观看软件 | 91大神一区二区 | 亚洲精品 欧美 | 欧美乱大交xxxxx潮喷l头像 | 成人午夜福利视频 | 91麻豆一区二区 | 欧美色图激情小说 | www.brazzers.com| 欧美一级视频免费观看 | 日韩色一区 | 蜜臀99久久精品久久久久小说 | 亚洲国产成人一区二区精品区 | 欧美一线高本道 | 一级片a级片 | 国产一区二区黑人欧美xxxx | 成人欧美精品一区二区 | www色中色 | 久久久久久国产精品三级玉女聊斋 | 成人a视频在线观看 | 国产日韩欧美电影 | 夜夜夜影院 | 污网站在线看 | 涩涩视频在线免费看 | 国产精品久久久久久久久久久久久 | 第一页在线 | 97碰碰视频| 成年人在线观看网站 | 51久久| 玖玖免费 | 西欧毛片 | zjzjzjzjzj亚洲女人 | 亚洲中文字幕视频一区 | 亚洲性图视频 | 日批视频免费播放 | 91美女在线视频 | 男人天堂1024 | 国产成人亚洲精品 | 777四色| 国产视频一区二区三区在线播放 |