在使用python中,需要处理很多事情,而有时,处理这些事情需要用到新的函数,今天,我来讲讲在python后期会用到的函数
先上代码:
#模拟登陆
#python 3.8.5
for i in range(3):
n=2-i
n=str(n)
name=input('请输入用户名:')
password=input('请输入密码:')
if name=='root' and password=='123456':
print('登录成功')
break
else:
print('登录失败')
print('您的机会只剩%s次'%n)
else:
print('3次机会已用完,请重新运行')
这里的代码很长很长,而且还有许多不明白的地方是吧
首先,讲一下第一行和第二行,n=2-i
for 循环的意思是 for 变量 in 次数
而使用for循环会创建一个新的变量,变量名就是for和 in中间的字母
第一次循环变量的值是0,第二次是1,第三次是2,以此类推。。。。最后一次变量的值是range括号里的数少一,而range并不只有这一个用处,range相当于一个迭代器,
而且,range的使用方法是range(start,stop,step)
start:数列开始,可以省略,默认从0开始
stop:到几结束,不能省略,是几就是几
step:步长,可以省略,默认为1
所以你现在知道range怎么用了吗
print(list(range(1,5)))#[1,2,3,4] 代表从1到5(但不包括5)
print(list(range(1,10,2))#[1,3,5,7,9] 代表从1到10,间隔为2(依然不包括10)
print(list(range(5)))#[0,1,2,3,4] 代表从0到5,start已默认为0,step已默认为1(就是不包括5)
由于第一次循环i是0,所以用2-i就是第一次输入不正确时还剩的次数,因为2-0=2嘛
剩下的两次循环也是这样,这里需要稍微在编写时动一下脑子
其实for语句也有其他用法
就比如:
a='python'
for i in a:
print(i)
#运行结果:
#p
#y
#t
#h
#o
#n
就是将i的值每一次变成a的值,分别打印出来(这是个伏笔)(我想用'''来注释的,但是知乎好像不行,所以用了#来注释)
int是让一个只有数字的字符串变为数字形式,随后可以进行加减
str是让数字变成字符串,可以直接打印,但我觉得其实没啥大作用(但也是偶尔有用的,比如字符串的合并,字符串和数字相加就要把数字转化成字符串)
然后就是input收入的一定是字符串形式,所以如果是要进行加减,则要用int(input())
但是这里是模拟登录,所以密码用字符串形式也同样可以判断
接下来讲一下and和or
and是指在if语句判断中,所有的条件都要成立才会执行下级代码
or是指在if语句判断中,只要有其中一个条件成立就可以执行下级代码
and 和 or 都可以添加多个条件,100个都行的
接下来就是比较难的了,是break,pass,continue(真的长啊)
先是break,它起到的作用是跳出循环,很好理解,比如最上面的代码,用户名的密码已经正确,不再需要继续磨叽你输入用户名和密码,直接跳出循环,执行代码,但那也只是在用户名和密码正确的情况下才会跳出循环,如果输入的不正确,要磨叽你3次才会停止
然后就是pass,什么也不做,只起到占位的作用,因为在if语句里,必须有下级代码,这里就可以用到pass,就比如:
a=int(input('请输入一个不为5的数:'))
if a==5:
pass
else:
print('能听懂人话')
你看,如果哪个看不懂人话的人输入了5,那么这个程序就不会鸟TA
但是,其实这里用!=也是可以的,!=就是不等于,就比如这么写:
a=int(input('请输入一个不为5的数'))
if a!=5:
print('能听懂人话')
你看,其实他们都是一样的,只要输入了5就不会鸟你
还有就是continue,很长,但也能记住,它的作用是跳出本次循环,举个例子:
在操作跑步为例,原计划跑 10 圈,但当跑到 2 圈半的时候突然接到一个电话,此时停止了跑步,开始走路,走了半圈,当挂断电话后,他并没有继续跑剩下的半圈,而是直接从第 3 圈开始跑。
记得上面的代码嘛,就是for语句的其他用法,如果你不想看到o这个字母,就可以用continue
直接上代码
a='python'
for i in a:
if i =='o':
continue
print(i)
#运行结果:
#p
#y
#t
#h
#n
我们会看见,o没有了,是因为每一次都进行判断:这次i的值是不是o啊,如果是,就跳出这次循环,它后面的属于for语句的所有代码都不执行了,直接执行下一次循环
最后的最后就是%的用法,%有许多用法:
%s 打印字符串(采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
%的用法也十分简单
比如:
a='666'
print('我想和你说%s啊'%a)
这里只是列举了%s的用法,其他用法也相同,%a你可以理解为用'%'处理一下变量,让它变成你想要的格式
接下来,我留个课后作业,密码是147258,如果输入的是147258(str形式或int形式均可),就输出100以内的奇数,如果输入的不是147258,就继续磨叽要三次数字,直到用户输入了147258就输出100以内的奇数
如果你觉得这题你会,就投到我的邮箱3218293526@qq.com,可以是文件也可以是文字,期待各位的回答