0.说明
学习网址:http://www.runoob.com/python/python-operators.html
github地址:https://github.com/Eyrane/python
若运行的时候出现如下错误:
bash: ./test: /usr/bin/python^M: 解释器错误: 没有那个文件或目录 //文件编辑格式出错
vim filename
:set ff
:set ff=unix
1.基础语法和变量类型
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "hello";
print "你好";
# “#”为注释
# 标识符由字母、数字、下划线组成,不能以数字开头,区分大小写
# 用缩进表示模块,而不是{}
if 1:
print "Ture1"
print "Ture2" #严格按照缩进
else:
print "false1"
print "false2"
#使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,三引号可以由多行组成
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
print word,sentence,paragraph # 不换行输出
print word
print sentence
print paragraph
#Python 中的变量赋值不需要类型声明
x = 100
y = 100.1
total = x + \
y #用\将一行语句分为多行
print total
#多个变量赋值
a ,b ,c = 1, 2.1, 'join'
print a,b,c
#字符串
print "************字符串"
print c[1:3] #输出字符串中第2个到第5个之间的字符串
print c * 2 #字符串输出两次
print c + "test" #输出连接的字符串
#列表[]. 支持字符,数字,字符串甚至可以包含列表(即嵌套).
print "************列表"
list = ['runoob', 1, 2.1, 'join', 40.2]
tinylist = [123, 'join']
print list
print list[0]
print list[1:3]
print list [2:]
print tinylist * 2
print list + tinylist
list[0] = 111
print list
#元组(类似list),不能二次赋值,相当于只读list
print "************元组"
tuple = ('runoob', 1, 2.1, 'join', 40.2)
tinytuple = (123, 'join')
print tuple
print tuple + tinytuple
#字典{},由索引(key)和它对应的值value组成,是无序的对象集合。
print "************字典"
dict = {}
dict['one'] = 'this is one'
dict[2] = 'this is two'
tinydict = {
'name':'join', 'code':'22', 'dept':'sales'}
print dict
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
2.运算符、条件语句、循环语句
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "************算术运算符"
#**幂 - 返回x的y次幂 //取整除 - 返回商的整数部分
a = 21; b = 10; c = 1
print "a+b:",a+b, "a-b:",a-b, "a*b:",a*b ,"a/b:",a/b, "a%b:",a%b, "float a/b:",float(a)/float(b), "(0.0+a)/(0.0+b):",(0.0+a)/(0.0+b)
print "************比较运算符"
#<>相当于!=
print "a==b:",a==b, "a!=b:",a!=b, "a<>b:",a<>b, "a>b:",a>b, "a<b:",a<b, "a>=b:",a>=b, "a<=b:",a<=b
print "************赋值运算符"
#不能 print "a+=b:",a+=b //因为 a=a+b 是一个语句,不能作为一个变量输出
# += -= *= /= **= //=
a+=b; b-=c;
print "a+=b:",a, "b-=c:",b
print "************位运算符"
# ^异或:不同为1
a = 60 #0011 1100
b = 13 #0000 1101
print "a&b=",a&b, "a|b=",a|b, "a^b=",a^b, "~a=",~a, "a<<2=",a<<2, "a>>2=",a>>2
print "************逻辑运算符"
# and or not
print "a and b:", a and b, "a or b:", a or b, "not a:", not a
a=0
print "a=0 a and b:", a and b, "a or b:", a or b, "not a:", not a
print "************成员运算符"
# in:在指定序列中找到值返回true; not in:与in相反
list = [1, 2, 3, 4, 5]
print "a=",a, "a in list:",a in list, "a not in list:",a not in list
a=1
print "a=",a, "a in list:",a in list, "a not in list:",a not in list
print "************身份运算符"
# is:判断两个标识符是否引用自同一个对象 is not
# x is y 类似 id(x)==id(y) x is not y 类似 id(x)!=id(y)
a = 10; b = 10 #交互模式下,如果变量写在同一行,将会指向同一个对象,脚本模式是否写在一行,都指向同一个对象
print "a=",a, "b=",b, "a is b",a is b, "a is not b",a is not b
b = 20
print "a=",a, "b=",b, "a is b",a is b, "a is not b",a is not b
#优先级:** > ~ > */% // > +- > & > ^| > 比较运算符 > <>==!= > 赋值运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
print "############条件语句"
# if 条件1:
# 语句1
# elif 条件2:
# 语句2
# elif 条件3:
# 语句3
# else:
# 语句4
# python 并不支持 switch 语句
n = 15
if n >= 0 and n <= 10:
print "0<=n<=10"
elif n < 0:
print "n<0"
elif n > 10:
print "n>10"
else:
print "wrong"
print "############循环语句"
# while for 嵌套; break continue pass(空语句)
print "############while"
i = 1
while i < 10:
i += 1
if i % 2 > 0:
continue #跳过本次循环
if i > 8:
break #退出循环
print i
else:
print i
print "############for"
for j in range(1,9):
if j % 2 > 0:
continue
if j > 8:
break
print j
else:
print j
3.列表、元组和字典
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# len()返回对象(字符、列表、元组等)长度或项目个数
# pop()移除列表中最后一个元素,并返回该元素的值
# append()在列表尾部添加新对象。。以上均为内置函数
# del为内置关键字(如import、return等),删除一个对象(list、变量、类的实例等)
print "##############列表" # []
list1 = ['physic', 'chemistry', 1992, 2000]
list2 = [1, 2, 3, 4, 5, 6]
a = list1.pop();
list2.append(a)
print list1
print list2
print list2[-2]
del list2[2]
print list2
print 'len(list1+list2)=',len(list1+list2)
print 'list2 max=',max(list2), 'min=',min(list2), 'cmp(list1,list2)=',cmp(list1,list2)
print '\n'
print "list1=",list1
print "list2=",list2
print list1+list2
print list1 * 2
print 2 in list2
for x in list1:
print x
print '\n'
print list1.count(2) #count():统计某个元素在list中出现的次数
list1.extend(list2) #extend():在列表末尾一次性追加另一个序列中的多个值
print "list1=",list1
print list2.index(2000) #index():在列表中找出某个值第一个匹配项的索引位置
list1.insert(2,'hello') #insert():将对象插入列表中
print list1
list1.remove(1992) #remove():移除列表中某个值的第一个匹配项
print list1
list2.reverse() #reverse():反向列表中的元素
print list2
list2.sort() #sort():对列表进行从小到大排序
print list2
print '\n\n\n'
print "##############元组" # () 与列表类似,但值不可改
print ('all'),('all',) #如果元组只有1个元素,就必须加一个逗号,防止被当作括号运算
print tuple(list1) #tuple():将列表转换为元组
print list( tuple(list1) ) #list():将元组转换为列表
print '\n\n\n'
print "##############字典" #{key1 : value1, key2 : value2 , ...} key必须不同,且不可变(所以list不能做key)
dict = {
'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8 #修改字典
dict['School'] = 'DPS School' #增加对象
print dict
test1 = dict.pop('School') # pop():删除字典给定键 key 所对应的值,返回值为被删除的value
print 'pop:',test1,dict
test2 = dict.popitem() #popitem():随机返回并删除字典中的一对键和值
print 'popitem:',test2,dict
print len(dict)