欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3 Day02

程序员文章站 2022-04-15 19:53:52
笔记: 1.递归的特性 2.格式化输出 当需要打印出来的内容是要需要根据变来变化的时候就需要使用,在字符串中加入%s,%d等。 3.判断内容是否在字符串内 直接使用in方法 >>>>a = "test" >>>>b = "123 test 456" >>>>a in b True 4.简单进度条 i ......

笔记:

1.递归的特性

Python3 Day02

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)

 

作业过程:工资管理系统

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

Python3 Day02

在学习了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导致程序直接退出,

Python3 Day02

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