1。判断脚本是自己的主块还是在其他脚本中import以模块运行。
通过__name__的值去判断,如果为__main__就是运行脚本的主块, 例如:
if
__name__ ==
'__main__'
:
print
'This program is being run by itself'
else
:
print
'I am being imported from another module'
2.
数据结构:list
类似于java中的List,通过[]来定义。
shoplist = [
'apple'
,
'mango'
,
'carrot'
,
'banana'
]
list长度:
len
(shoplist)
list
遍历:
for
item
in
shoplist:
print
item,
list增加
item:
shoplist.append(
'rice'
)
list排序:
shoplist.sort()
list删除:
del
shoplist[
0
]
统计list中x元素出现个数:
list.count(x)
返回list中元素的index
list.index('x')
插入一个元素
list.insert(3, 'x')
3.数据结构:元组
类似java中的数组,通过()来定义。元组与list的区别是元组的元素不可以修改。
元组最通常的用法是用在打印语句中,例如:
age =
22
name =
'Swaroop'
print
'%s is %d years old'
% (name, age)
print
'Why is %s playing with that python?'
% name
4.字典
类似java中的map,也就是一些键值对。
字典通过以下方式定义:
d = {key1 : value1, key2 : value2 }
键和值用:分隔,键值对之间用,分隔,所有键值对包含在{}中。
字典中的键值对是没有顺序的,如果需要一个特定的顺序,请在使用前对它们进行排序。
定义:ab = {
'Swaroop'
:
'swaroopch@byteofpython.info'
,
'Larry'
:
'larry@wall.org'
,
'Matsumoto'
:
'matz@ruby-lang.org'
,
'Spammer'
:
'spammer@hotmail.com'
}
读取:print
"Swaroop's address is %s"
% ab[
'Swaroop'
]
增加:ab[
'Guido'
] =
'guido@python.org'
删除:del
ab[
'Spammer'
]
遍历:for
name, address
in
ab.items():
print
'Contact %s at %s'
% (name, address)
5.序列:list,元组,字典都是序列。
序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]
表示序列的最后一个元素而shoplist[-2]
抓取序列的倒数第二个项目。
切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置开始 ,刚好在结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。
5.对象的参考和拷贝
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
mylist = shoplist
#参考,两者指向同一对象
mylist = shoplist[:]
# 拷贝shoplist到mylist
6。字符串
你在程序中使用的字符串都是str
类的对象。如果要了解这些方法的完整列表,请参见help(str)
。
7.自然字符串
如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r
或R
来指定。例如r"Newlines are indicated by \n"
。