重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
听起来你之前应该有学习一些静态编程语言,比如C, 所有会有些先入为主的理解。
创新互联专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,成都服务器托管,成都服务器托管,成都多线服务器托管等服务器托管服务。
为什么“i”好像可以不用定义就能使用?这是语法规定 没什么好说。
“i”的值从0开始?因为rang(5)会生成了一个类似[0,1,2,3,4]的序列,而for语句会迭代这个序列并把它的值依次赋给变量“i”,第一次赋值的时候就是0。
至于“i”为什么是inti型,Python是动态类型语言并且它足够聪明 会自动推断合适的数据类型给变量,不用我们指定数据类型。
关于for语句和range()函数的解释
Python 的 for 语句与 C 或 Pascal 中的不同。Python 的 for 语句不迭代算术递增数值(如 Pascal),或是给予用户定义迭代步骤和暂停条件的能力(如 C),而是迭代列表或字符串等任意序列,元素的迭代顺序与在序列中出现的顺序一致。
内置函数 range() 可以生成算术级数,生成的序列不包含给定的终止数值:
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
for ... in ...
// for ... in 字符串
for i in 'abc':
print(i)
'''
a
b
c
'''
// for ... in 数组
for i in ['a', 'b', 'c']:
print(i)
'''
a
b
c
'''
// for ... in 元组
for i in ('a', 'b', 'c'):
print(i)
'''
a
b
c
'''
// for ... in 字典(得到的是字典的key)
for k in {'学号':30,'姓名':'小明'}:
print(k)
'''
姓名
学号
'''
// for ... in 字典.items()(得到的是字典的key, value)
for k, v in {'学号':30,'姓名':'小明'}.items():
print(k, v)
'''
姓名 小明
学号 30
'''
for ... in range(...)
// for ... in range(num)
for i in range(3):
print(i)
'''
1
2
'''
// for ... in range(num1, num2)
for i in range(1, 3):
print(i)
'''
1
2
'''
// for ... in range(num1, num2, num3)
for i in range(3, 1, -1):
print(i)
'''
3
2
'''
for i in range(1, 5, 2):
print(i)
'''
1
3
'''
倒叙
for i in reversed([1,2,3,4]):
print(i)
’‘’
4
3
2
1
‘’‘
又想得到遍历次数,又想得到数组值
for i,e in enumerate(array):
for i,e in enumerate(['21dw', 55, 22, 'rw']):
print(i, e)
'''
0 21dw
1 55
2 22
3 rw
'''
列表生成式
[...for ... in array]]
print([x * x for x in [2, 34, 324, 43]])
'''
[4, 1156, 104976, 1849]
'''
//相当于
list = []
for x in [2, 34, 324, 43]:
list.append(x * x)
print(list)
如果num不是素数,那么一定有一个i使得num%i==0,循环在中途就会return 0
而如果num是素数,那么程序最终将会完成循环并执行return 1。
Python 中的 for 语句和 C 或 Pascal 中的略有不同。通常的循环可能会依据一个等差数值步进过程(如 Pascal),或由用户来定义迭代步骤和中止条件(如 C ),Python 的 for 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。例如(没有暗指):
# Measure some strings:
... words = ['cat', 'window', 'defenestrate']
for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点:
range是python的内置函数
1、range()返回的是一个可迭代的对象,这个对象的类名就叫range,你可以简单的理解成能够一个两个去数数的,比如说range(5),你就当做是数字 1,2,3,4,5
2、for i in range() 就是遍历这个可迭代对象,就像上面说的range(5),第一次 i 就是1,第二次是2,第三次是3,依次类推
len 函数能够返回一个序列的长度,for i in range(len(L))能够迭代整个列表L的元素索引。虽然直接使用for循环似乎也可以实现这个效果,但是直接使用 for循环难以对序列进行修改,因为每次迭代调取的元素并不是序列元素的引用。而通过range函数和len函数可以快速通过索引访问序列并对其进行修改。