我大学学习的是java,对于学习Python语言非常陌生;一直会将java的语法和Python的语法混淆;我想出了一个方法就是将python与java对比学习,一者了解了java的语法,二者也更能很好的去学习python。
1.输出语句
(1)java输出语句:System.out.println(0xff==255);(需要嵌套在class类中的main方法才可以执行)
Python输出语句:print(0xff==255);(可以直接print,可直接执行);
(2)输出多个字符串
java格式:System.out.println("a "+"b "+"c");(通过+号来拼接多个字符串,且需要用双引号引用每个字符,如若想要输出空格,则需要在引号内输入空格)——单引号对应的是字符的ask码值。
eg:System.out.println("100+200="+(100+200));
Python格式:print('a','b','c');(字符串之间用逗号分隔,输出时遇到逗号会输出一个空格;另外也可以用+来拼接)
print('a'+'b'+'c');
eg:print('100+200=',100+200);
2.注释
java注释://单行注释;/***/多行注释
Python注释以“#”开头;
3.Python中的布尔类型,python中把0,空字符,None看做为False,把数值和非空字符看做为True
短路计算:
a and b ,如果a为false,则不用判断b,结果为false;如果a为True,则结果取决于b,并返回b;
a or b,如果a为True,则不用判断b,记过为True;如果a为false,则结果取决于b,并返回b;
4.创建list,
python内置的一种数据类型是列表:list,list是一种有序的集合,可以随时增加或删除其中的元素(list其实就是数学意义上的集合)
构造list非常简单,直接用[]把list元素括起来,就是一个list对象。通常我们会将list复制给一个变量,这样就可以引用该变量了;另外python是动态语言,所以list集合中的数据可以是各种类型的集合,一个元素也没有的list就是空的list
java中用数组来表示,表达如下:
char L[]={'a','b','v'};
System.out.println(L);
empy_list=[]
python中表达
L = ['Adam', 95.5,'Lisa', 85, 'Bart', 59]
print L
需要注意的是,索引是从0开始访问的,第二个是1,依次类推
eg:
L=['Admin','taxi','Mill']
print L[0]
注意越界的问题与上述相反最后一个下标为-1,倒数第二个为-2,依次类推
eg:
L=['Admin','taxi','Mill']
print L[-1]
print L[-2]
7.Python从list中删除元素
(1).pop()方法,总是从list中最后一个删除并且还会返回这个元素,并将这个元素打印出来;
(2).如果想要删除指定的元素,必须定位其索引,pop(2),并返回这个元素,并将这个元素打印出来;
8.Python中替换元素
对list中的某一个索引赋值,就可以用新的元素直接替换旧的元素,list集合元素个数不变
9.python之创建tuple
tuple是一个“元组”,tuple一旦被创建就不能被修改,所以tuple没有append(),insert(),pop()方法。另外tuple与list创建的不同之处就是使用了“()”替代了“[]”;tuple的索引与list一样,如t[1],t[-1]。
t = (0,1,2,3,4,5,6,7,8,9)
print t
运行结果
(0,1,2,3,4,5,6,7,8,9)
10.tuple之创建单个元素
tuple和list是一样的,可以创建0个,1个或者多个元素;包含多个元素的创建如上,以下介绍创建0个元素和1个元素
tuple创建0个元素,也就是空tuple,创建如下
t=();
print t
运行结果
()
创建1个元素,需要注意,需要在元素后面自动添加逗号,由于()既可以表示tuple,又可以表示运算的优先级,所以(1)打印出结果为整数1,而非元组,如果要表示tuple,则为如下表示;
t=(1,);
print t;
运行结果如下
(1,)
如果创建多个元素,则不必在后面自动添加逗号
t=(1,2,3);
print t;
运行结果如下
(1,2,3)
11.python之“可变”的tuple
之前我们说tuple一旦被创建就不能被修改,下面我们来看一下变化的tuple
t = ('a', 'b', ['A', 'B'])
注意到tuple包含3个元素,a,b和一个list['A','B'],tuple元素不可变,但是list元素是可以变化的,这就是“可变”,tuple中的不变指的是“指向不变”,比如t[0]=a,t[1]=b,t[2]=['',''],至于list的元素变化,不影响tuple的指向。
12.python语句-if
age = 20
if age >= 18:
print 'your age is', age
print 'adult'
print 'END'
注意:python代码的缩进规则,具有相同缩进的被视为代码块,上述3,4行为同一代码块,如果if语句为True,则执行以下代码块;
if语句后接表达式用:表示代码块的开始。
13.if-else
根据表达式的值判断是True还是False,去分别执行if和else代码块;具体语法如下;
if 表达式1:
代码块1
代码块2
........
else:
代码块3
代码块4
.......
14.if-elif-else
特别注意: 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
15.for循环
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
注意:name是在for循环中定义的,意思是取出list中的元素,并把元素赋值给name,并打印出来。
16.while循环
和for循环不同的是while循环,while循环不会迭代list和tuple,而是根据表达式判断是否结束循环
sum=0
x=1
while x<=100:
sum=x+sum
x=x+2
print sum
while 循环每次判断x<=100,如果正确则执行代码块,x=x+2,x在不断增加,知道不满足循环条件,则退出循环
17.break退出循环
sum = 0
x = 1
n = 1
while True:
sum = sum + x
x = x * 2
n = n + 1
if n > 20:
break
print sum
注意:while True是一个死循环,但是在循环体内还判断了n>20用来跳出循环
18.python中的dict使用
大家都知道,list和tuple是有序的集合,例如班级里的同学:
['Adam', 'Lisa', 'Bart']
例如班级分数:
[95, 85, 59]
如果我们想要把name和score一一对应出该怎么办,那么我们就可以使用dict,dict语法如下
d={
key:value,
key:value,
key:value
}
注意:key和value一一对应,最后一个key:value可以不写逗号
len(d)可以统计dict集合的大小
19.python之访问dict
访问dict有两种方式
(1)方法一:使用d[key],指定key值就可以取到对应的value值;
(2)方法二:使用d.get(key)
20.dict的特点
特点一:查找速度快,占用内存大,浪费内容,key值不能重复
特点二:dict存储的dict-value是无序的
特点三:value值是不可变的,类型可以为“字符串”,整数,浮点型,切记不可存储可变数
21.dict之更新
dict是可变的,如果想要更新dict可以直接赋值,如dict['paule']=67,则就添加到dict集合中了;如果key值存在,那么则将之前的value覆盖
22.dict遍历
dict遍历同list一样都可以通过for来进行遍历
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key+":"+str(d.get(key))
注意:此处key为str类型,d.get(key)类型为int,int和str不能拼接,需要将int转化为str
22.python之set
创建set的方式是调用set()并传入一个list
set(['A','B','C'])
set()内部是无序的;如果list中包含一个重复的元素,set会自动去除重复的元素
23.访问set
由于set是无序的集合,则不能通过索引进行访问,需要通过in操作符
如果要判断元素bart是否存在在set中,则应该表达为
s=set(['bart','bark','admin'])
'bart' in s----返回结果为Ture
注意:set()不能区分元素的大小写
24.set特点
特点一:无序
特点二:set中不存储value的值,只存储key值,则查询速度快
特点三:元素不可变
set的应用,如果用户输入一天,判断他是星期几,则就可以用set存储一周,eg:
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
x = '???' # 用户输入的字符串
if x in weekdays:
print 'input ok'
else:
print 'input error'
25.遍历set
同样set也是一个集合,遍历也用for进行遍历,只是打印出来的元素是无序的
26.更新set
由于set存储一组不重复的元素,因此更新set主要做两件事:
一是把新的元素添加到set中,二是把已有的元素删除
增加元素:add(),删除元素:remove()
如果元素存在,运行不会报错,只是不会添加进去;删除不存在的元素,则会报错
27.函数
函数文档:https://docs.python.org/2/library/functions.html
圆的计算面积:area_of_circle(x)
绝对值:abs (x)
比较 cmp(x, y),如果x
int(),把其他数据类型转化成整型
str()把其他类型转化成字符类型
28.python之编写函数
python中定义一个函数用def语句,依次写出函数名、括号、参数、冒号,缩进体中写函数,函数的返回值用return语句返回。
我们以自定义一个求绝对值的my_abs函数为例:
def my_abs(x):
if x >= 0:
return x
else:
return -x
请注意:函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过循环和判断可以实现非常复杂的逻辑。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。
return None 可以简写为return。
任务:
请定义一个square_of_sum函数,他接受一个list,返回list中每个元素平方的和
方法一:
def square_of_sum(L):
sum=0
for x in L:
sum+=x*x
return sum
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
方法二:
def square_of_sum(L):
return (sum (x*x for x in L))
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
sum(iterable[, start])
iterable--可迭代对象,如列表。
start--指定相加的参数,如果没有设置这个值,默认为为0
29.python之函数返回多值