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') 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() 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]
关于列表,需要注意这些最最基本的知识点:
1.创建方法,使用[]和list()方法
2.访问。访问元素是使用索引访问list(index),索引可以是负数,我们要习惯正负数,这样有时候很方便
3.编辑,直接在2的基础上和一般的赋值操作一样
4.切片,注意就是[:]装的符号是:,然后他实际上是新建了一个新的列表;然后就是设置步长,可以是负数,这样就是逆序(实际上还是将range封装进去了!!!)
5 很重要的是,列表可以任意的东西,甚至是函数(只是装进去func()会让函数直接运行)
我在研究列表解析式的时候,我领悟到一个道理就是,代码的简洁和可读性有时候背道而驰的。在讲那个三元表达式的时候就是这样了。
matrix = [
,
,
,
]
for row in matrix:
for col in row:
print(col)
ff =
这循环看的很清楚啊,这样复杂的列表解析就是很难看的(至少目前是这样的)
不过很重的是,要理解列表解析式,很明显多看看循环就知道了。 本帖最后由 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 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]
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: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]