Python初学者8号 发表于 2021-2-19 10:05:05

2021-02-19

1.打开文件打不开的问题
我打开一个文件内容出现问题,文件内容如下今日计划
1,试着运算降低1000倍的模型的运算
2.如果可行进行建模工作,争取今天完成

3.小甲鱼的TKinter的哪一届作业完成
4。html的作业以及后面的类的作业列表的作业


2021年2月19日09:07:45 1完成了数据

2021年2月19日09:07:55 开始学习easygui的内容,了解一下root参数。不,暂时不了,先留个底子【msgbox中的root参数和image参数怎么用的 https://fishc.com.cn/thread-143537-1-1.html】
使用该命令打开出现报错:f = open(mb,'r')
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 23: illegal multibyte sequence

解决方法:f = open(mb,'r',encoding='UTF-8')

Python初学者8号 发表于 2021-2-19 12:43:16

2021年2月19日11:11:17 我还在整这个动动手的3,我傻逼了

思路:
1,打开文件操作,名字为record.txt
2 打开txetbox,文件现实的内容为record.txt的内容
3.将2的返回值和record.txt的内容比较,
4.不相同的进行过警告,使用buttonbiox选择保存方式,根据保存方式进行保存

【反思】
1,没写算法,脑子不清晰。浪费了时间
2.基本方法使用不够熟练,如下
msgbox;
open()   ;   
textbox();   
choice();
buttonbox():
file.write()   filesave()
file.read()    fileread()

Python初学者8号 发表于 2021-2-19 15:18:54

def dds2():
    m = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
    for i in range(5):
      print(m,m)
      i += 2


member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
# 方法一:
count = 0
length = len(member)
while count < length:
    print(member, member)
    count += 2

# 方法二:
for each in range(len(member)):
    if each % 2 == 0:
      print(member, member)

小甲鱼 88
88 黑夜
黑夜 90
90 迷途
迷途 85

观察小甲鱼的做法,其实方法有点区别但是核心没有变化,这个要求的核心就是要输出01    23   45   67   89这样的输出。
输出的方法可以是输出;list(index)或者是list(a:b)
我们应该观察到,输出的是元素而不是列表,因而使用index控制输出,无非就是输出0 2 46 8 ,因此只要找到偶数序列就好,那么可以是range(0,9,2),或者是直接让i在循环内部增加。

ps使用切片可以这样做member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
for i in range(0, 9, 2):
    print(member)

['小甲鱼', 88]
['黑夜', 90]
['迷途', 85]
['怡静', 90]
['秋舞斜阳', 88]

Python初学者8号 发表于 2021-2-19 15:33:54

关于列表,需要注意这些最最基本的知识点:
1.创建方法,使用[]和list()方法
2.访问。访问元素是使用索引访问list(index),索引可以是负数,我们要习惯正负数,这样有时候很方便
3.编辑,直接在2的基础上和一般的赋值操作一样
4.切片,注意就是[:]装的符号是:,然后他实际上是新建了一个新的列表;然后就是设置步长,可以是负数,这样就是逆序(实际上还是将range封装进去了!!!)
5 很重要的是,列表可以任意的东西,甚至是函数(只是装进去func()会让函数直接运行)

Python初学者8号 发表于 2021-2-19 16:03:12

我在研究列表解析式的时候,我领悟到一个道理就是,代码的简洁和可读性有时候背道而驰的。在讲那个三元表达式的时候就是这样了。
matrix = [
    ,
    ,
    ,
]

for row in matrix:
    for col in row:
      print(col)

ff =

这循环看的很清楚啊,这样复杂的列表解析就是很难看的(至少目前是这样的)

不过很重的是,要理解列表解析式,很明显多看看循环就知道了。

Python初学者8号 发表于 2021-2-19 16:15:11

本帖最后由 Python初学者8号 于 2021-2-19 16:39 编辑

所以,总结一下列表解析法的要点:
1.结合循环,循环一定是其基础!!就像a = b if 条件 else c 一样,必须理解其本身的样子
2.是为了从可迭代对象建立序列的时候才用这样的方法,更为简单
3.也有条件表达的 如evens =
4.切记可以不用太复杂了,两层我觉得就够了
关键词:可迭代,创建序列,循环
参考文献:https://www.cnblogs.com/amiza/p/10159293.html


紧急补充:元组不可以!!目前看来是只有可改变的序列才可以:集合,字典,列表——2021年2月19日16:39:55

Python初学者8号 发表于 2021-2-19 16:19:41

2021年2月19日16:19:37
ps;看吧,掌握了循环就很快就知道怎么看这个列表解析了
list2 = []
for x in range(10):
    for y in range(10):
      if x %2 == 0:
            if y %2 != 0:
                list2.append((x,y))
print(list2)

list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

Python初学者8号 发表于 2021-2-19 16:30:29

2021年2月19日16:29:11
有时候需要知道余数和除数,可以使用这个东西,他是内置的函数,效率还好
https://www.runoob.com/python3/python3-func-divmod.html
divmod(20,8) = (除数,余数) = (2, 4)

Python初学者8号 发表于 2021-2-19 16:42:09

本帖最后由 Python初学者8号 于 2021-2-19 16:46 编辑

【坑】
2021年2月19日16:42:05
a = (i for i in range(6))
a
<generator object <genexpr> at 0x000001A4891995F0>
b =
b

a
<generator object <genexpr> at 0x000001A4891995F0>
type(a)
<class 'generator'>

2021年2月19日16:46:46
4. 创建一个元组,什么情况下逗号和小括号必须同时存在,缺一不可?

在拼接只有一个元素的元组的时候,例如我们课上举的例题:
>>> temp = (‘小甲鱼’, ‘黑夜’, ‘迷途’, ‘小布丁’)
# 如果我想在“黑夜”和“迷途”之间插入“怡静”,我们应该:
>>> temp = temp[:2] + (‘怡静’,) + temp
复制代码
页: [1]
查看完整版本: 2021-02-19