1樓:匿名使用者
python中,列表是所謂的「可迭代物件」,這種物件支援迭代協議,即一系列python保留方法,能夠在每一次迭代中自動返回一個值。(以上為概念)
在python中,python可以在for迴圈中自動為可迭代物件進行迭代,即:可以這樣寫:
major=['cis','geog','aeis','math']
for i in major:
print(i)
由於列表是支援迭代協議的物件,因此,在這個迴圈中,迴圈變數i會被依次賦值為major中的每一個元素
(事實上,for i in list是python中遍歷列表的最佳方式,這種方式速度最快。
由於你的**是在python3中執行,那麼range()函式會返回所謂的「生成器」(generator object),由於生成器的採用,可能進一步增加執行迴圈需要的時間
從邏輯上來說,你的**存在一個問題:range()函式在提供一個引數時,會返回一個產生值0-(引數-1)的生成器,即:
major=['cis','geog','aeis','math']
for i in range(len(major)):
print(major[i])
輸出為:
'cis'
'geog'
'aeis'
而如果對range()提供兩個引數,即range(a,b)的形式,那麼list(range(a,b))將返回[a,...,b-1](list()函式呼叫可以將引數轉換為列表返回,它是一個一次性獲得可迭代物件的所有值的常用工具)
(此處附簡單計時:
# coding:utf-8
__author__ = 'as126'
import time
if __name__ == '__main__':
txt = open('a.txt', 'w')
l1 = [i for i in range(1, 10000001)]
starttime = time.time()
for i in range(len(l1)):
print(l1[i], file=txt)
endtime = time.time()
print(endtime - starttime)
starttime = time.time()
for i in l1:
print(i, file=txt)
endtime = time.time()
print(endtime - starttime)
txt.close()
輸出:74.03824377059937
64.0977132320404
前者是for i in range(len(list))迴圈所用時間,後者是for i in list迴圈所用時間
為了凸顯差異,本例構建了一個一千萬級的列表)
如果在輸出'cis'時,需要輸出為'cis - in great demand'
可以寫成:
major=['cis','geog','aeis','math']
for i in major:
if i == 'cis':
print(i + 'in great demand')
#或者直接:print('cis - in great demand')
else:
print(i)
2樓:大漠鳳蕭蕭
if index==0:
print 'cis - in great demand'?
python新手問題,基本列表解析
3樓:冷暖永自知
[x*5 for x in range(2,10,2)] 是python中的生成器,生成一個列表。
你從表示式可以看出是生成5*x,x是2-10範圍內,以2為步長
專的元素。那就是2 4 6 8,所屬以生成了[10, 20, 30, 40]咯。
python新手問題?
4樓:匿名使用者
小括號是元組,整個元組算這個集合的一個元素
5樓:匿名使用者
python的集合裡面可以包含多種元素的,如a=
6樓:雙子座的我
你自己多寫了個括號,那個eval的外面不需要用()
7樓:匿名使用者
把eval外面的小括號去掉。
8樓:錢家章從筠
在python2中raw_input()返回的永遠是字串。你需要使用input()來對輸入表示式求值並返回實際型別。
python新手的問題?
9樓:匿名使用者
這個是字串的切片,和列表的index類似
alp[0] 即字元『a』
alp[-1] 即字元『z』
10樓:匿名使用者
果然python新手
python 字串
python新手問題!!!
11樓:
不知道你熟不熟悉「類」這個概念(class),python也是一種物件導向的語言,類就是一種物件,他遍佈python每個角落。
為了給你說明 屬性 和 方法,我儘量給你舉例子。
先來看個簡單點的,如果你不應用類,你只能做一些簡單的程式設計,比如helloworld:
*************************===
#helloworld.py
print "hello ! world"
*************************===
當你執行 import helloworld 後(或者 c:\python26\pyhton.exe helloworld.py),螢幕上就出現了
hello ! world
好了,然後我應用「方法」。
*************************===
#hw2.py
def printhello():
print "hello ! by method"
def saygoodbye():
print "goodbye!"
*************************===
好了,現在hw2.py這個檔案(作為模組)就有了兩個方法,一個是printhello,一個是saygoodbye
當我們執行 import hw2 不會有任何反應。因為我們程式設計用的是「方法」,「方法不呼叫是不會執行的。當然如果你在def那行前面加入其他語句就會執行了,因為那些不屬於方法。
然後我們輸入 hw2.printhello()
螢幕上出現 hello ! by method
輸入 hw2.saygoodbye()
出現 goodbye!
最後,我要給你舉「屬性」的例子,然後要求你把最佳答案給我,呵呵
*************************===
#hw3.py
def hello():
property1="text"
property2=23
print "hello,i know a word " & property1 " and a number " & str(property2) & "!!!"
*************************===
然後我們執行:
import hw3
hw2.hello()
出現hello,i know a word text and a number 23
之所以前面有str()是因為23是數字,必須轉換為字串才能和其他字串合併。這裡的porperty1 和property2就是兩個屬性,不過他們是固定值。你可以通過變數(方法後面的括號內填加)來改變。
或者如果是類的話,可以在中途賦新值。
最後給你個類的例子吧,作為特別附贈,然後我就不解釋引用和索引了,這兩個概念不好描述卻很好理解,就是字面上的意思,就算你不明白意思也無所謂,不像類和方法這麼重要
*************************==
#clas***ample.py
class people(name,age):
***="male"
def show():
print " name: "+ name +"/nage: " + age +" ***: " + ***
*************************==
執行 import clas***ample
bob=clas***ample.people("bob","30")
#bob繼承了people類,並賦予了名字和年齡屬性,同時性別預設是男
bob.age="31"
#bob年齡增長了一歲,把age屬性改變了
bob.***="female"
#好吧這個有點惡搞得意味了
bob.show()
#bob也繼承了show()方法
出現結果:
name: bob
age: 31 ***:female
還不明白的話多看幾本書就明白了
12樓:匿名使用者
example:
import sys
help(sys)
dir(sys)
python如何微秒級延時,如何在python中比較微秒時間差
python中的sleep函式可以復傳制小數進去,就可以進行毫秒級的延時了,如下 例1 迴圈輸出休眠1秒 import time i 1 while i 3 print i 輸出i i 1 time.sleep 1 休眠1秒 例2 迴圈輸出休眠100毫秒 import time i 1 while ...
python新手關於編寫函式的問題
def fun ary for x in ary if isinstance x,int return min s min ary max s max ary else return pl num print fun 3,8,1,4 print fun a b c d 你c學得不錯哦!python ...
python新手,在python中類中的self
任何實現了特殊方法 getitem 的類 內建的列表類list 元祖類tuple 集合類set 字串類str都實現了這個特殊方法,因此它們都可以通過索引來訪問物件的成員 的物件都可以通過索引 下標 來訪問這個物件的成員。而self index 只不過是通過索引來訪問當前物件的成員罷了。這是一個例子 ...