在做python小作业时出现[Error]EOL while scanning string literal
这个异常造成的原因是字符串,引号没有成对出现
错误原因
写路径的时候
D:/asdasdasd
D:\\asdasdasd
这两种写法都是对的 但是万万不能写成D:\这样就会出现这个错误啦
640*480 32真彩色图片 大小怎么计算?
按照32位来表示一个像素点的RGB的话,是四个字节
640×480×4=1228800字节
1228800÷1024÷1024=1.17
-------------------------------------------------------------------------------------------------------------------------------------------分割线
python入门笔记:
Python中定义字符串
如果字符串本身包含'
怎么办?比如我们要表示字符串 I'm OK
,这时,可以用" "
括起来表示:
如果字符串既包含'
又包含"
怎么办?
这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\
进行转义。
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r
,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:
r'\(~_~)/ \(~_~)/'
但是r'...'
表示法不能表示多行字符串,也不能表示包含'
和"
的字符串(为什么?)
如果要表示多行字符串,可以用'''...'''
表示:
'''Line 1
Line 2
Line 3'''
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
错误原因:编码冲突(Unicode VS utf-8)
解释:代码编辑第一行的注释#-*-coding:utf-8 -*-,表明以下Python代码使用utf-8编码,但是很多人把题目要求的输出语句写成print u'" ..."',这样就又要让解释器使用Unicode编码输出,导致解码出错。我们应该记住以何种方式编码就应以何种方式解码,否则就很有可能出现编码错误。
列表list中添加删除元素
append()总是把新的元素添加到 list 的尾部
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.append('Paul')
>>> print L
['Adam', 'Lisa', 'Bart', 'Paul']
insert()它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.insert(0, 'Paul')
>>> print L
['Paul', 'Adam', 'Lisa', 'Bart']
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,由于Paul的索引是2,因此,用 pop(2)
把Paul删掉:
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
>>> L.pop(2)
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了
>>> t = ('Adam', 'Lisa', 'Bart')
当tuple中只有一个数字元素,为避免发生歧义,规定在数字后面添加一个","
>>> t = (1,)
>>> print t
(1,)
但是可以通过将list附在tuple中改变t的元素位置
>>> t = ('a', 'b', ['A', 'B'])
只想统计及格分数的平均分,就要把 x < 60 的分数剔除掉,这时,利用 continue,可以做到当 x < 60的时候,不继续执行循环体的后续代码,直接进入下一次循环:
for x in L:
if x < 60:
continue
sum = sum + x
n = n + 1
Python之dict
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
由于dict也是集合,len() 函数可以计算任意集合的大小:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
>>> len(d)
3
>>> print d['Adam']
95
>>> print d['Paul'] Traceback (most recent call last): File "index.py", line 11, in <module> print d['Paul'] KeyError: 'Paul'
注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d: print d['Paul']
如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart') 59 >>> print d.get('Paul') None
(多种输出方法,这个图真tm的大qwq)
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。
dict的第二个特点就是存储的key-value序对是没有顺序的!
dict的第三个特点是作为 key 的元素必须不可变。
添加/遍历dict元素
>>> d['Paul'] = 72
Python之set
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
>>> s = set(['A', 'B', 'C'])
可以查看 set 的内容:
>>> print s
set(['A', 'C', 'B'])
请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
因为set不能包含重复的元素,所以,当我们传入包含重复元素
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3
结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素