•  

【20200925】Python基本语法

发表于 2020-09-24,阅读 28

介绍

介绍

Python这种脚本语言福哥已经给大家介绍过了,现在童鞋们应该已经会安装python的开发环境了,接下来我们需要针对python语言进行一个系统的学习。

首先学习一门编程语言最先要学习的是语言的语法,学习编程语言的语法包括常量与变量、输入与输出、条件语句(if)、循环语句(for,while)、交换语句(switch,case)、函数(function)、对象(class),这个和之前福哥带着童鞋们接触c/c++、java、php三种主流编程语言的基本语法的顺序是一样的。不过学习过c/c++、java、php语言的老鸟会有一种感觉,就是python的语法真BT啊~~

那么现在就开始吧!童鞋们准备好了吗?

基本语法

  • 一行一个命令,不需要以“;”结尾

  • 逻辑语句使用4个空格缩进,使用逻辑语句的时候,例如:if、for、try等等,需要将子逻辑代码每一行都使用4个空格缩进一下

  • 行注释使用“#”,如果要为代码写注释信息,需要使用“#”符号

  • 块注释是不支持的,python并不支持其他语言都支持的“/* ... */”块注释语法

常量与变量

变量定义

python属于弱类型的语言,所以python的变量是没有类型的

whoAmI = "同福"
howOldAmI = 35

类型转换

虽然python是弱类型,但是字符串和数字也是要区别对待的(这一点php就做的比较彻底,各种类型的变量可以随便混用)

strInt = "35"
realInt = int(strInt)

realInt = 35
strInt = str(realInt)

null

在python里是没有null的,取而代之是None,当函数处理异常时候一般情况下得到的都是None。判断None需要使用is关键字而不是“==”运算符

输入与输出

输入

python2输入不能使用input()了,需要引入sys软件包,使用sys.stdin对象

import sys

print ("你叫什么?")
yourName = sys.stdin.readline().strip()
print ("你多大了?")
howOldAreYou = sys.stdin.readline().strip()

print ("你是" + yourName + ",你今年" + howOldAreYou + "岁")

22020d4af039460d.jpg

输出

python输出语句使用 print 命令

whoAmI = "同福"
howOldAmI = 35 #sdf

print ("我叫" + whoAmI + ",我今年" + str(howOldAmI) + "岁")

ab2d1109fb108241.jpg

条件语句(if)

python的条件语句还是使用if,这时候就需要“缩进”了

python的else if换成了elif,这个和linux下的shell语言是一样的

whoAmI = "同福"
howOldAmI = 35
if whoAmI is not None and whoAmI != "":
    print whoAmI
if howOldAmI is not None and howOldAmI == 35:
    print howOldAmI
    
if howOldAmI == 12:
    print "好年轻啊!"
elif howOldAmI == 25:
    print "好帅啊!"
else:
    print "你到底多大啊?"

循环语句(for,while)

按次循环

python的按次循环很奇怪,需要通过range实现

howOldAmI = 0
for i in range(0, 35):
    howOldAmI = howOldAmI + 1
print howOldAmI

条件循环

python的条件循环基本和其他语言相似

howOldAmI = 0
i = 0
while i < 35:
    howOldAmI = howOldAmI + 1
    i = i + 1
print howOldAmI

交换语句(switch,case)

python没有switch语法,只能使用if、elif、else实现了

函数(function)

函数定义使用def关键字

无返回值

无返回值的函数定义

def showInfo():
    print "同福"
    print 35

showInfo()

有返回值

有返回值的函数定义,返回值使用return关键字返回出来

def getName():
    
    return "同福"

def getAge():

    return 35;

print ("我叫" + getName() + ",我今年" + str(getAge()) + "岁")

有参数

有参数的函数定义

def showInfo(name, age):
    print ("我叫" + name + ",我今年" + str(age) + "岁")

showInfo("同福", 35)

对象(class)

python的对象定义语法逆天了简直,咱们看一个例子先

class fuge:
    name = "同福"
    age = 35
    def setName(self, name):
        self.name = name

    def setAge(self, age):
        self.age = age
        
    def showInfo(self, num):
        print ("[" + str(num) + "] 我叫" + self.name + ",我今年" + str(self.age) + "岁")

    def callShowInfo(self):
        self.showInfo(6)

myFuge = fuge()
myFuge2 = fuge();
myFuge.showInfo(1)
myFuge2.setName("福哥")
myFuge2.setAge(36)
myFuge.showInfo(2)
myFuge2.showInfo(3)
myFuge.callShowInfo()

2207e8d3e81f3609.jpg大家可以和福哥一块儿看看python的对象编程有多么另类

  • 对象声明使用class(这还是比较正规的)

  • 属性声明没有修饰符(这也还能接受)

  • 方法声明使用def(把它想成function就好)

  • 每个方法必须有参数,且第一个参数为指向对象自身的指针(我去这是什么鬼!?)

  • 方法内调用属性使用对象指针(这个...好吧,真能糊弄啊~)

  • 方法内调用其他方法使用对象指针,且不能传递对象指针参数(福哥已经无语了!!)

捕获异常语句(try)

很多时候我们所期望的情况和实际的情况是有差距的,这个时候会出现意想不到的情况,这种情况我们称之为异常情况(exception),一般情况下,遇到这种情况程序会终止执行,这不是我们所希望的

为了解决这个问题,我们可以使用try语句去尝试执行我们的程序代码,如果出现了异常我们可以主动设计程序的处理方案,避免程序终止执行

try:
    print (fuge + ",是你吗?")
except Exception as e:
    print e
finally:
    print "哦,我知道了"

解释一下

  • try:这部分代码是主逻辑,python会尝试运行这段代码

  • except:如果主逻辑执行出现异常情况会将异常信息捕获起来放入变量e,并执行用户的处理方案

  • finally(可选):无论主逻辑执行是否出现异常情况,这段代码都会被执行,这段是可选的

引用自定义包

我们编程python程序时候,在将公共处理封装到函数里面或者对象里面,这样业务逻辑代码会看起来非常清爽。如果一些函数或者对象是属于公共的,多处都需要使用这些函数或者对象,那么应该怎么办呢?

我们可以将一些函数或者对象放到一个py文件里,在需要调用这些函数或者对象的py文件里面引用它们

同级目录

如果引入的自定义(package)的py文件和调用(main)的py文件在同一级目录下,可以直接引入这个自定义(package)的py文件

结构

package.py
main.py

main.py

from package import *

不同级目录

如果引入的自定义(package)的py文件在调用(main)的py文件不在同一级目录下,需要在自定义(package)的py文件所在目录建立空文件__init__.py文件

结构

lib/__init__.py
lib/package.py
main.py

main.py

from lib.package import *

总结

python的语法很奇怪,与常规的编程语言的语法格式区别很大,但是就没有学会编程的人首次接触python的时候,他们的反馈是:感觉很容易理解。不得不说,这一点真的是始料不及的,这个python语言的语法确实值得我们这些古董级的程序员反思一下。

福哥尝试着用最容易理解的方式给童鞋们讲解各种编程语言的语法和开发技巧,希望童鞋们可以认真学习。如果遇到了问题,可以讲真实的感受反馈给福哥,福哥会想办法以更加好理解的方式讲解给大家~~

鬼谷子叔叔
  • 日志:212
  • 回复:13

进入ta的主页