简要记录java和python一些语法规则上的区别

以前一直写java,目前需要写python3(p2语法可能不会指出),因此要简单的了解下二者的区别,以防混淆,再次只是记录一些简单的区别,后续会补充

如有任何错误,望告知,留言指出!

1. java每句都有“;”,p没有

2. 输出语句

    java的循环循环语句需要使用“{” + “}”,p使用“:”

3. 循环中break 和continue的用法一致,但是p中的pass,用来站位

if(number % 2 == 0):
    pass
else:
    odd.append(number)

4. java幂运算使用math的函数,p的幂运算,可用运算符“**”;p的“取整除 - 返回商的整数部分(向下取整)”符号是“//”

        >>> 9 // 2  >>>4

       10**20 是10的20次幂

5. p2中 “!=” 和“<>”都可用来比较两个对象是否相等,但是p3中“<>”已经废除

6. p的成员运算符

    in:如果在指定的序列中找到值返回 True,否则返回 False。

         eg:x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

    not in :如果在指定的序列中没有找到值返回 True,否则返回 False。

        eg:x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True
NB:if requested_topping in available_toppings: (if A in 列表:)

available_toppings = ['mushrooms', 'olives', 'green peppers',
'pepperoni', 'pineapple', 'extra cheese']#创建披萨店有的配料列表
requested_toppings = ['mushrooms', 'french fries', 'extra cheese']#创建顾客需要的配料列表
for requested_topping in requested_toppings:#遍历顾客点的配料
    if requested_topping in available_toppings:#测试披萨店是否有顾客点的配料,若有则添加
         print("Adding " + requested_topping + ".")
    else:#若没有则执行else后面的代码块
        print("Sorry, we don't have " + requested_topping + ".")
print("\nFinished making your pizza!")
#打印结果
Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.

Finished making your pizza!

7. p的身份运算符

     身份运算符用于比较两个对象的存储单元。

     is:是判断两个标识符是不是引用自一个对象

          eg:x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

     is not:是判断两个标识符是不是引用自不同对象

          eg:x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

8.  逻辑运算符

     java:“&&” == p:“and” ;

     java:“||” = p:“or”;

     java:“!” = p:“not”;   

9. 在 python 中,while … else 在循环条件为 false 时执行 else 语句块:

count = 0
while count < 5:
    print(count, " is  less than 5")
    count = count + 1
else:
    print(count, " is not less than 5")
    #打印结果
    0  is  less than 5
    1  is  less than 5
    2  is  less than 5
    3  is  less than 5
    4  is  less than 5
    5  is not less than 5

10. p中没有do 。。。while循环

11. p的列表(p中没有数组这一个基本类型)

      概念:

In[1]:students=['name','id','class','score'] 
print(students) 
['name', 'id', 'class', 'score']    

      1. 依旧使用角标的方式访问元素,0表示第一个,类似数组,但是p同样可以用-1表示最后一个,-2表示倒数第二个,更快捷

      2. 常用函数

        append(),在末尾添加一个元素

        insect(index,content)在index位置插入一个content

        del 列表名【index】 :删除index位置的元素

        len() :获得列表的大小

        sort():排序

        list():可以用于列表的创建 比如:空列表的创建:l = list() or l = []

 

12. 列表的遍历依旧使用for循环,和java类似

In[2]:
stus=['小米','小毛','小钱','小倩','小青']#创建一个列表
for stu in stus:#定义一个for循环,并从stus中取出一个名字存储在stu中
    print("hello,"+stu.title()+"from China!")
    #打印结果
    hello,小米from China!
    hello,小毛from China!
    hello,小钱from China!
    hello,小倩from China!
    hello,小青from China!

   

13. 数值列表(p提供一些函数用来很好的创建和使用数值列表

     13.1 rang()函数来创建数值列表

      NB:注意不包括6

In[9]:
for value in range(1,6):#打印结果只到第二个值的前一个数
    print(value)
    #打印结果
    1
    2
    3
    4
    5

      使用range()函数时,还可以指定步长,比如打印1~10以内的偶数:

even_numbers=list(range(2,11,2))#函数range()从2开始,不断加2,直到达到或超过终值11
print(even_numbers)
#打印输出
[2, 4, 6, 8, 10]

    13.2 max();min();sum()

    13.3 列表的解析

 

14 切片

   14.1 创建切片

      可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0、1 和2 的元素。

players=['charles','martina','michael','florence','eli']
print(players[0:3]
#打印输出
['charles', 'martina', 'michael']#打印了该列表的一个切片

 

players=['charles','martina','michael','florence','eli']
print(players[1:4])
#打印输出
['martina', 'michael', 'florence']

 

  如果第一个索引没有指定,则默认从列表开头开始:

players=['charles','martina','michael','florence','eli']
print(players[:4])
#打印输出
['charles', 'martina', 'michael', 'florence']

 

  同样如果第二个索引没有指定,则默认从列表末尾开始:

players=['charles','martina','michael','florence','eli']
print(players[2:])
#打印结果
['michael', 'florence', 'eli']

 

14.2 遍历切片

players=['charles','martina','michael','florence','eli']
print("Here are the first three players on my team:")
for player in players[:3]:#只遍历前三名队员
    print(player.title())
    #打印结果
    Here are the first three players on my team:
    Charles
    Martina
    Michael

 

14.3 复制列表

my_foods = ['pizza', 'falafel', 'carrot cake']#首先创建一个列表
friend_foods = my_foods[:]#取出列表的头尾切片,并将其存储到新列表中
print("My favorite foods are:")
print(my_foods)#打印出我喜欢的食物
print("\nMy friend's favorite foods are:")
print(friend_foods)#打印出朋友喜欢的食物,发现二者相同,实现了列表的复制
#打印结果
My favorite foods are:
['pizza', 'falafel', 'carrot cake']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

 

15. 缩进

    java使用的 { } 来限定一个循环或者一个函数的内部。但是不要求缩进

    p使用缩进来判断谁是循环体内,谁在循环体外。函数也同理。因此p必须有严格的缩进。否则有错误或者无法完成目的

    并且常见的报错形式为:

 

16. if循环

     java使用:if - else ; if - else if - else;

     p使用:if - else; if - elif - else 

age = 12
if age < 4:
    print("Your admission cost is $0.")
elif age < 18:
    print("Your admission cost is $5.")
else:
    print("Your admission cost is $10.")
    #打印输出
    Your admission cost is $5.

   Python中某些情况下else代码块可以省略,而选择用elif来实现,这样使得目的更加明确

age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
elif age < 65:
    price = 10
elif age >= 65:
    price = 5
print("Your admission cost is $" + str(price) + ".")#只在条件测试结束后执行一次

 

17. 函数

print()输出

input()接收用户的字符

message = input("Tell me something, and I will repeat it back to you: ")#函数input() 接受一个参数:即要向用户显示的提示或说明,让用户 知道该如何做。
print(message)#用户输入信息后传递给message,再打印出来
#打印结果
Tell me something, and I will repeat it back to you: hello everyone!#用户自定义输入
hello everyone!#打印输出

自定义函数:def 函数名(参数):

函数的调用:使用定义的函数名,并且要传参(不需要定义变量的类型)

传递int等类型的整数时,传递的是函数的值,改变不了传递参数的参数本身,但是传递的是列表的时候,改变的就是列表本身,和java一样,可以参考下面的例子

def ChangeInt( a ):
    a = 10
b = 2
ChangeInt(b)
print (b) # 结果是 2
#打印结果为2

 

下面是使用列表的形式

# 可写函数说明
def changeme( mylist ):
    "修改传入的列表"
    mylist.append([1,2,3,4])
    print ("函数内取值: ", mylist)
    return
# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)
#打印结果
函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

 

函数的传参

1. 默认传参:

调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:

#可写函数说明
def printinfo( name, age = 35 ):
    "打印任何传入的字符串"
    print ("Name: ", name)
    print ("Age ", age)
    return
 
#调用printinfo函数
printinfo( age=50, name="miki" )
printinfo( name="miki" )
#打印结果
Name:  miki
Age  50
Name:  miki
Age  35

2.关键字传参

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

#可写函数说明
def printinfo( name, age ):
    "打印任何传入的字符串"
    print ("Name: ", name)
    print ("Age ", age)
    return
#调用printinfo函数
printinfo( age=50, name="miki" )
#打印输出
Name:  miki
Age  50

 

3.不定长参数

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:

# 可写函数说明
def printinfo( arg1, *vartuple ):
    "打印任何传入的参数"
    print ("输出: ")
    print (arg1)
    for var in vartuple:
        print (var)
    return
 
# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )
#打印输出
输出: 
10
输出: 
70
60
50

 

4 匿名函数
python 使用 lambda 来创建匿名函数。

lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

lambda [arg1 [,arg2,.....argn]]:expression

# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
#打印结果
相加后的值为 :  30
相加后的值为 :  40

 

18.关于pthon变量的问题。

看这篇文章:简单理解python中的变量和内存

 

19 主函数

    java的运行从main()函数开始,但是p没有主函数,那么他一般从哪里开始呢?

   看这篇文章:python开始从哪里执行--main函数

 

 

 

   

 

参考:https://me.csdn.net/qq_40074819

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值