例如 range(1,5),其实只包含1,2,3,4 即便是range(0,6,2),也不包含6。如果数不在range里那在range里出现这个数字的含义何在? 数组从0开始记数我已经忍了,range不含上界这是一个什么意思?这还让slice等等操作如何被人类理解啊? 另外,左闭右开是哪里来的习惯?有什么渊源? 题主赞同下列答案: “range 的上界参数并非数学意义上的上界,而是计算意义上的跳出循环的条件(当把循环结构作用于这个 range 时,遇到“上界”,就意味着跳出);与 C / C++ 中数组指针为什么被允许指向数组后面的一个元素的原因类似。题主可以查查 Andrew Koenig 在这方面非常细致深入的讨论。” 看见轮子老师的答案我不禁了解了一件事:程序员果然固执。。range 接受的第二个参数又不是数组长度,而是数组的上界。难道你要让我们都认为range(1,6) 中的6是这个数组的长度?1,2,3,4,5 的长度是6?range(5,6) 6 是数组长度? 实际上我赞同range(start,end) 是对应于for(int i=start, i。。不要用C语言来辩解了。我学过C,我知道数组从0开始,但我无法理解range 不含上界。学习下matlab 和Mathematica 以及其他工程软件中看看工程师和科学家怎么想的吧,轮子哥。 另外本题的重点不是数组从0,而是range 的上界。不要抓住dijkstra 这朵奇葩不放谢谢。那个数学家定义的区间是不含右界的请告诉我。我必定谦恭学习
回复内容:
Why are standard iterator ranges [begin, end) instead of [begin, end]? 比较一下下面三种划分实数的方案[0, 1] (1, 2) [2, 3]…
(0, 1) [1, 2] (2, 3)…
[0, 1) [1, 2) [2, 3)…
显然最后一种方案最美,所有区间包含的元素“一样多”。
当然,这里只是说明半开半闭/半闭半开作划分是最合适的,两者相比之下半闭半开更自然。
天天说什么数学家数学家,题主你个学物理的就不要来指导江山教我们应该怎么设计语言啊。尽管你很固执,我还是想开化开化你。
为什么左闭右开,为什么数组从0开始,这是因为C语言获得一个数组a的元素地址&a[b]就可以直接翻译成&a+b*sizeof(*a),免去了一次减法。这次减法在C语言刚发明的时候可是很重要的哦!然后你有一个长度s,那你遍历数组用的for循环就是for(i=0;i
好了,python又不是C语言,但是(据说)python的第一个实现是C写的哦!几乎所有语言受到C的影响全部都做成这样了。当然有少部分的语言不是,譬如说Visual http://Basic.NET,譬如说我为我自己的www.gaclib.net 内置脚本引擎做的傻逼小脚本(最后发现swift的关键设计跟我的完全一致,太丢脸了)。这纯粹看语言他爹的喜好。python他爹就不是什么数学家,哈哈哈哈。
不过我们已经互相拉黑了,我也不用看到题主你的评论了,好开心。
Why are standard iterator ranges [begin, end) instead of [begin, end]?
楼下 @shell von 的一个链接,我发现数学家Dijkstra也是这么想的。
关于这个问题,我想应该是这样:我从c++ 里面迭代器的内容尝试解答一下这个问题,
对于一个容器,我们需要知道它的头尾,最常进行的操作是从begin到end不断+1来循环,此时如何知道循环到达末尾呢,如果end是上界(即包含这一个元素),我们还需对它的下一个元素抛出一个可以判别的信号,那么end的意义就不大了,因此对循环而言,末尾的下一个元素更加重要,可以终止循环。
可以验证这一想法的是,如果采用reversed 迭代器,那么begin指向最后一个元素(包含),而此时的end指向第一个元素的前一个元素,对容器而言,是一个左开右闭的状态,迭代器+1时实际上是向前走。
python中的range不也产生一个list么,遍历总是需要退出的,左闭右开是因为我们总是从list左边开始,遍历到右边结束。
希望有所帮助。 哪个数学家经常用到range
数学家的尊严何在!? 为何楼上都在说数组从0开始这个。我觉得和这个问题毫无关系。
其实程序里使用左闭右开的原因是:
考虑一个区间[l, r], 如果我需要遍历这个区间,需要迭代器支持比较操作。
即:
i = l;
while (i <= r) do {
process(i);
i++;
}
大家都喜欢左闭右开区间。
设计者:“爷乐意”
建议你还是用Basic语言好了,数组可以从1开始,for 可以 1 to 2这样写,不过题主好像是个软黑。——————————————————————————————————————————
python数组
>>> s=[1,2,3,4,5,6]
>>> s
[1, 2, 3, 4, 5, 6]
>>> for i in range(0,6):
... print s[i]
其实来源于
c语言的数组
int arr[6]={0,1,2,3,4,5};//0 to 5...
数组遍历
for(int i=0;i
}
ps:c语言常用i1.i2.极端情况下,如果数组长度为0的话且使用了unsigned int,i——————————————————————————————————————————
再举个例子
2011年到2012年过了多少年,如果算左右界的话:
len(year[2011:2012])=2
这不符合常理
所以左右界中只能算一个
才是
len(year[2011:2012])=1 别犟嘴了,看官方doc不好么?
4.3 The range() Function
说白了,range(a, b)在设计的时候默认a是default as 0的,所以b本来就是当做offset或者说长度存在的一个arg,本来就不是tail index,当你的a不是default的时候,你自然而然以为“应该是一个头一个尾两个index啊?!”,很抱歉,其实不是的。
犟嘴不长学问。

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Python在Web開發中的關鍵應用包括使用Django和Flask框架、API開發、數據分析與可視化、機器學習與AI、以及性能優化。 1.Django和Flask框架:Django適合快速開發複雜應用,Flask適用於小型或高度自定義項目。 2.API開發:使用Flask或DjangoRESTFramework構建RESTfulAPI。 3.數據分析與可視化:利用Python處理數據並通過Web界面展示。 4.機器學習與AI:Python用於構建智能Web應用。 5.性能優化:通過異步編程、緩存和代碼優

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

Python在現實世界中的應用包括數據分析、Web開發、人工智能和自動化。 1)在數據分析中,Python使用Pandas和Matplotlib處理和可視化數據。 2)Web開發中,Django和Flask框架簡化了Web應用的創建。 3)人工智能領域,TensorFlow和PyTorch用於構建和訓練模型。 4)自動化方面,Python腳本可用於復製文件等任務。

Python在數據科學、Web開發和自動化腳本領域廣泛應用。 1)在數據科學中,Python通過NumPy、Pandas等庫簡化數據處理和分析。 2)在Web開發中,Django和Flask框架使開發者能快速構建應用。 3)在自動化腳本中,Python的簡潔性和標準庫使其成為理想選擇。

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。