菜鸟的大三之旅/Python1

在做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'])
python之循环
用for循环的时候可以直接写for name in L
!!在while循环中,当有双重条件时&&出错 --------------------------------------------------------------
break跳出循环
continue继续循环

只想统计及格分数的平均分,就要把 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个元素
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值