python的内置函数可以理解为python内部已经包装好的可以进行输入输出的模块,python中有60多个内置函数,这一章将主要介绍几个常见的内置函数。
内置函数range():用于生成一个整数序列,共有三种表达方式
- range( stop)
- range( start,stop)
- range(start,stop,step)
第一种表达式
i=range(4) #创建一个[0,4),默认步长为1,注意左包右不包
print(type(i)) #类型为range ,而不是list
print(i)
print(list(i)) #list本身也是一个内置函数,理解为将type为range的i解析出来
<class 'range'>
range(0, 4)
[0, 1, 2, 3]
第二种表达式
i=range(1,12) #创建一个[0,4),默认步长为1,左包右不包
print(type(i))
print(i)
print(list(i)) #所以range(0,4)与range(4)的意义是一致的
<class 'range'>
range(1, 12)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
第三种表达式
=range(1,12,2) #设置步长为2
print(list(i))
print(10 in i) #判断一个整数是否在i中
[1, 3, 5, 7, 9, 11]
False
特点:
range函数占用的内存空间始终是相同的,但会牺牲后续运算步骤
import sys
i=range(1,12,2)
i1=range(1,12,2)
j=[1, 3, 5, 7, 9, 11]
print(sys.getsizeof(i)) #查询对象占用内存
print(sys.getsizeof(i1))
print(sys.getsizeof(j))
48
48
152
输出都是[1,3,5,7,9,11],i与i1内存相同为48,j内存占用为152
range函数对象为整数,range(4.0)会报错
range函数的逻辑判断性,输出True或False
**while循环**
之所以叫while循环是因为其“循环”的特性,与if的判断特性不一致。
```python
a=1
sum=0
while a<10: #判断a是否小于10,如果True,则执行内部连续相加语句
sum=sum+a
a+=1
print(sum)
1
3
6
10
15
21
28
36
45
计算1到100内(含100)所有偶数的和
sum = 0 #计算1到100内(含100)所有偶数的和,注意print函数在三个位置的意义是不一样的
i = 1
while i<=100:
if i%2 == 0:
sum = sum + i
#①print(sum)
#②print(sum)
i += 1
print(sum)
for in 循环
语法意义为在字符串或序列中遍历(依次取值)
for item in 'OK': #依次输出字符串的每一个
print(item)
for item in range(4): #range内置函数在下一章
print(item)
O
K
0
1
2
3
如果在循环体中不需要使用自定义变量,可将自定义变量写为“_”
for _ in range(3): #不适用变量用_,表现循环次数
print('重复hello')
重复hello
重复hello
重复hello
计算1到100内(含100)所有偶数的和,用for in语句:
sum=0
for i in range(0,101,2): #使用i作为变量依次遍历0到101之间的数,步长为2
sum+=i #也可以去掉步长,再使用if语句判断奇偶
print(sum)
一个例子:输出所有三位数中的水仙花数
print('三位数的水仙花数有:')
for i in range(100,1000):
if i==(i//100)**3 + ((i//10)%10)**3 + (i%10)**3:
print(i)
else:
pass
三位数的水仙花数有:
153
370
371
407
流程控制语句break
用于结束循环,通常与分支结构if一起使用
一个例子:输入字符串型密码,做多输五次,输入正确就提示,5次都不对提示锁定
password = str(123456)
for i in range(0,5): #也可以用while循环
pass_word = str(input("请输入六位:"))
if password==pass_word:
print("密码正确")
break
else:
print("密码不正确")
if i==4:
print("账户被锁定")
password = str(123456)
i=1
while i<=5:
pass_word = str(input("请输入六位:"))
if password==pass_word:
print("密码正确")
break
else:
print("密码不正确")
if i==5:
print("账户被锁定")
i += 1
流程控制语句continue
用于结束当前循环,进入下一循环。一个例子:输出1到50中5的倍数,如果是10的倍数则跳过。
for i in range(1,51): #输出5的倍数,如果是10的被倍数则跳过
if i%5==0:
if i%10==0:
continue
else:
print(i)
i=0
while i <=50: #输出5的倍数,如果是10的被倍数则跳过,用while语句
i += 1
if i%5==0:
if i%10==0:
continue
else:
print(i)
i=0
while i <=50: #第三种表发的方式
i += 1
if i%5!=0:
continue
else:
if i%10!=0:
print(i)
else:
continue
else语句
else除了与if一起搭配使用外,还可以与while和for语句搭配使用
for …else语句:循环正常结束时执行
while…else语句:循环正常结束时执行(以上两种循环中有break时else内语句不执行)
password = str(123456)
for i in range(0,5): #用else语句,当for语句循环完成后执行
pass_word = str(input("请输入六位:"))
if password==pass_word:
print("密码正确")
break
else:
print("密码不正确")
else:
print('账户被锁定')
嵌套循环
嵌套循环意思就是在循环内执行循环
画一个i行j列的矩形:
i=int(input('输入行数:'))
j=int(input('输入列数:'))
for a in range(i):
for b in range(j):
print("#",end='\t') #在某一行进行不换行输出
print() #换下一行
# # #
# # #
# # #
# # #
打印九九乘法表
print('========for循环打印九九乘法表==========')
for i in range(1,10):
for j in range(1,i+1):
print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')
print()
print('=======while循环打印九九乘法表=======')
i=1 #使用while循环
while i<=9:
j=1
while j<=i:
print(str(i)+'*'+str(j)+'='+str(i*j),end='\t')
j+=1
print()
i+=1
二重循环中的break与continue用于控制本层循环,对外层循环没影响
print('=======不打印最外层=======')
for i in range(1, 10):
for j in range(1, i + 1):
if j==i:
continue #continue语句只控制本曾循环
else:
print(str(i) + '*' + str(j) + '=' + str(i * j), end='\t')
print()
2*1=2
3*1=3 3*2=6
4*1=4 4*2=8 4*3=12
5*1=5 5*2=10 5*3=15 5*4=20
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72