Python3 Day02

2018-06-18 02:17:52来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

笔记:

1.递归的特性

2.格式化输出

当需要打印出来的内容是要需要根据变来变化的时候就需要使用,在字符串中加入%s,%d等。

>>>>find_1 = "robby"
>>>>salary = 3000
>>>>print("%s的工资是:%s" % (find_1, salary))
robby的工资是:3000

3.判断内容是否在字符串内

直接使用in方法

>>>>a = "test"

>>>>b = "123 test 456"

>>>>a in b

True

4.简单进度条

import sys,time
for i in range(50):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.5)

 

作业过程:工资管理系统

首先上一张脚本流程图(看的过去就行)

在学习了python基础操作后,这个其实就很容易实现,例如简单的文件内容的替换。

对于我来说,这里比较难的是判断用户的输入。

在开始时,要判断用户是否输入的1-4数字,这个还比较好解决,做了2次判断:

第一次判断用户是否是否输入的数字,使用str.isdigit()来判断,

然后直接一路if,elfi和else,判断是否是1-4的选项,并进入相应的选项继续执行下去。

while True:
select = input("请选择>>")
select = inputcheck(select)
if (select.isdigit()):
    if int(select) == 1:...
    elif int(select) == 2:...
    elif int(select) == 3:...
    elif int(select) == 4:...
    else:...
  else:...

 比较难的是判断用户输入账户名和工资,目前判断并不完善,会有一些漏洞。例如用户在输入账户名时输入的是数字,在输入框输入了多个空格,我都暂时无法判断。

目前是分3次判断,而且是比较配合的用户输入。

首选判断是否有空格,不论有多少个空格,必须要有一个空格。

然后以空格拆分成列表,取最后一个值,判断是否为数字。这里的漏洞就是无法判断用户是否输入了多个值,例如find_2 = "Alex 200 Robby 300"

接下来判断列表中最后一个值是否为数字,上面的内容就能通过。。。

如果是修改文件,就需要打开文件判断判断账户名是否在文件中,同样,上面的内容能通过,但会导致修改后的文件不正确。

find_2 = "Alex 200"
if " " in find_2:
  salary = find_2.split(" ")[-1]
  if salary.isdigit():
    with open("info.txt", 'r', encoding="utf-8") as f_2:
      for line in f_2:
      if find_2.split(" ")[0] in line:
      True

 错题集:

在写脚本中,误用break导致程序直接退出,

原因是,前面一个break是在for循环里,所以break会退到while这个循环。而红框中的break只是在if里,并没有在循环中,所以,break后直接退出了while。所以这里不需要用任何代码,循环会继续执行,因为下面的elif条件是不满足的。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python变量与结构的运用

下一篇:Python 学习笔记(十五)Python类拓展(一)继承