Python编程_Lesson007_循环讲解和函数
来源:互联网 发布:海美迪q5四核 优化补丁 编辑:程序博客网 时间:2024/06/07 18:19
while循环补充
循环语句参考
在Python中,while循环还可以和else搭配使用,这和其它大多数编程语言都是不相同的地方。请看下面的例子:
count = 0while count < 10: print(count) count += 1else: print("else:", count)
打印结果如下:
关于while循环的一个简单登录次数控制例子
print("task1 总共三次登陆机会,如果三次都没有登陆成功,给一个提示,如果登录成功,也需要给一个提示...")print("提示:用户名是root,密码也是root...")count = 3while count > 0: name = input("请输入用户名:") password = input("请输入密码:") if name=="root" and password=="root": print("恭喜您登录成功!") break count -= 1else: print("很遗憾,您已经尝试三次都没有登陆成功,程序退出!")
File文件操作
参考文献
我们可以使用open函数打开一个文件
open函数的默认打开文件的方式是只读的,也就是说不可以向文件中写入数据的。
来看一个例子:
>>> f = open("demo.txt")>>> f.readlines()['hello Python\n', '你好 Python\n']>>> f.writelines("1111")Traceback (most recent call last): File "<pyshell#102>", line 1, in <module> f.writelines("1111")io.UnsupportedOperation: not writable
从错误原因上面,我们可以得知,f是不可写的,原因就是我们默认的是以只读方式打开的文件。
如果我们以写的方式打开呢?
>>> f = open("demo.txt", "w")>>> f.writelines("1111111111 hhjhj")>>> f.readlines()Traceback (most recent call last): File "<pyshell#113>", line 1, in <module> f.readlines()io.UnsupportedOperation: not readable
此时又出现了不可写的错误,并且当我们用记事本打开demo.txt文件时,发现里面什么内容也没有了。这说明”w”表示创建一个新的文件,如果存在,则清空里面的内容。
上面登录次数练习的升级
我们通过文件里面的用户名和密码和用户输入的用户密密码进行比对,如果相等则登陆成功,如果不相等,则登陆失败!
文件demo.txt里面的内容如下:
admin adminaaa aaademo demoroot rootxxxx xxxx
代码如下:
mylist = []index = 0bSuccess = Falsef = open("demo.txt")for lineText in f.readlines(): lineText = lineText.replace("\n", "") mylist.append(lineText.split(" "))f.close()count = 3while count > 0: name = input("请输入用户名:") password = input("请输入密码:") for i in range(len(mylist)): if name == mylist[i][0] and password == mylist[i][1]: print("恭喜您登录成功!") bSuccess = True break count -= 1 if bSuccess: breakelse: print("很遗憾,您已经尝试三次都没有登陆成功,程序退出!")
dict字典
字典和list差不多,都是可以存储任意数据类型,它是以键值对的方式存储和查找的,键和值之间是以英文字符分号”;”来隔开的。
参考资料
我们可以使用下面的方法判断是否有我们要找的键值。
>>> mydict = {1:'a', 2:'b'}>>> 1 in mydictTrue>>> 3 in mydictFalse
使用dict我们可以完成一个班级花名册,根据输入的名字可以找到这个学院对应的信息。
f = open("roster.txt")mydict = {}while True: strText = f.readline() if strText == "": break strArray = strText.split(":") strName = strArray[0] strInfo = strArray[1]; strInfo = strInfo.replace("\n", "") strInfo = strInfo.replace(" ", "") strName = strName.replace(" ", "") mydict[strName] = strInfof.close()print("导入成功,请输入姓名进行查询,输入exit结束")while True: print("如果要退出程序,请输入exit") strInput = input("请输入姓名来查询对应的学员信息:") if strInput == "exit": print("程序退出") break else: if strInput in mydict: print(mydict[strInput]) else: print("您输入的姓名不存在!请重新输入...")
set
dict返回的既不是元组,也不是list,而是一个set!我们来看一个例子
>>> mydict = {1:'a', 2:'b', 3:'c', 2:'d'}>>> mydict{1: 'a', 2: 'd', 3: 'c'}>>> myset = set([1,1,2,2,3,3,4,4,5,5,6,6,7,7,7,7,7])>>> myset{1, 2, 3, 4, 5, 6, 7}
从上面的例子可以看出,dict返回的其实就是一个不重复是我集合(set)。
函数
函数其实就能够完成某一些特定的功能。
Python中函数的定义和使用如下所示:
>>> def myfunc(x, y): print(x, y)>>> myfunc(10, 20)10 20>>> myfunc("I Love", "Python!")I Love Python!
从上面可以看出,函数的参数是没有类型的,这既是一个好事,又是一个坏事,好事是方便,坏事是油方便造成的不方便。
请看下面的例子:
def myfunc(x, y): y = x/2 print(y)myfunc(1, 2)myfunc("123", 2)#结果如下0.5Traceback (most recent call last): File "C:\Users\Administrator\Desktop\py.py", line 6, in <module> myfunc("123", 2) File "C:\Users\Administrator\Desktop\py.py", line 2, in myfunc y = x/2TypeError: unsupported operand type(s) for /: 'str' and 'int'
如果我们要是想写的完善一些,我们就需要增加判断的语句。
def myfunc(x, y): if not isinstance(x, int): print("错误参数!") else: y = x/2 print(y)myfunc(1, 2)myfunc("123", 2)#结果如下:0.5错误参数!
当然了,我们的函数还是能够有返回值的:
def myfunc(x, y): if not isinstance(x, int): print("错误参数!") return 0 else: y = x/2 print(y) return yres = myfunc(1, 2)print(res)res = myfunc("123", 2)print(res)#结果如下:0.50.5错误参数!0
我们有的时候可能需要返回的值不只一个,那么我们该怎么办呢?
虽然可以返回多个数值,但是我们并不推荐这样使用,返回一个list我们倒是觉得更好。
def myfunc(x, y): if not isinstance(x, int): print("错误参数!") return 0, 0 else: y = x/2 print(y) return x, yres1, res2 = myfunc(1, 2)print(res1, res2)res1, res2 = myfunc("123", 2)print(res1, res2)#结果如下:0.51 0.5错误参数!0 0
Python中的函数也可以支持默认参数
def myfunc(x=0, y=0): if not isinstance(x, int): print("错误参数!") return -1, -1 else: y = x/2 print(y) return x, yres1, res2 = myfunc(1)print(res1, res2)res1, res2 = myfunc("123", 2)print(res1, res2)#结果如下:0.51 0.5错误参数!-1 -1
- Python编程_Lesson007_循环讲解和函数
- Windows编程_Lesson007_内核对象
- Windows编程_Lesson007_内核对象之二
- Python编程_Lesson014_json和pickle模块讲解
- 函数和函数编程-----Python
- Python核心编程----条件和循环
- Python编程_Lesson006_判断和循环
- python for循环和range内置函数
- python for循环和range内置函数
- Python常见函数讲解
- [python]findall函数讲解
- Python循环对象 ,函数
- Python基础编程(五)条件、循环和其他语句
- 《Python核心编程》第8章 条件和循环 练习
- python核心编程六——条件和循环
- Python编程基础之七条件和循环
- 《Python核心编程》第八章:条件和循环
- Python核心编程(第八章)--条件和循环
- Linux学习——shell编程之环境变量配置文件
- 遍历Map的四种常见方法
- HDU 1166 线段树 解题报告
- 如何限制程序互斥运行?
- Codeforces 740 B Alyona and flowers(前缀和)
- Python编程_Lesson007_循环讲解和函数
- jzoj. 1300. 卫星照片
- 644. Maximum Average Subarray II
- 树链剖分学习笔记
- SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
- LeetCode 636 : Exclusive Time of Functions(python)
- webstorm 激活 2017.7.16测试可用
- 单例模式(Singleton Pattern)。
- 拷贝之 SCP