python初阶---基础语法篇(一)

一、注释

python中注释的方法有两种,一种是使用“#”,适用于单行注释;另一种则是使用一组三个单引号或者一组三个双引号,适用于大段代码注释。

#适用于单行注释的注释方法
'''一组单引号注释方式,适用于大段代码注释'''
"""一组双引号的注释方式,适用于大段代码注释"""

二、缩进

python中使用缩进来表示不同层级的代码块,一般缩进方式是使用4个空格或使用一个tab键来替代4个空格,但不要在程序中同时使用tab键和4个空格,这会导致代码在跨平台时不能运行。官方推荐使用4个空格缩进。
注意:Python语法允许代码块随意缩进几个空格,但同一层级的代码块必须具有相同的缩进。

三、变量

在Python中使用变量时需要注意以下几点:
(1)在使用变量之前,需要对其先赋值。
(2)变量名可以包括字母、数字、下划线,但变量名不能以数字开头。
(3)字母可以是大写或小写,但大小写是不同的。
(4)等号(=)是赋值的意思,左边是变量名,右边是值,不可写反。

四、输入输出

Python中的输出函数为print();输入函数为input()。

string = input('请输入字符串:')
print('string:',string)

注意:使用print()输出字符串时,使用单引号和双引号没有区别。

print("Hellow World")
print('Hellow World')

当字符串中存在单引号或双引号时,直接打印可能会出错:
(1)如果字符串在单引号中,可以在单引号前加转义字符“\”;
(2)如果字符串在双引号中,可以直接加单引号嵌入。

print('let\'s go')
print("let's go")

五、语句断行

Python中一条语句代表一行,且在换行时语句末尾不需要使用分隔符。

print("hellow")
print('world')

如果要将两条简单的语句写在同一行,也可以使用“;”。

print("hellow");print('world')

如果将“;”用在一行语句的末尾,则表示对本行的结果不打印输出。

a ="hellow"
a;

如果一条语句较长想要分两行来写,可以使用“\”来换行,如果是在括号或者3个引号之间,则系统可以自动识别换行。

六、比较运算符

Python语法中的比较运算符及其含义如下表所示:

运算符含义
x<y判断x是否小于y,如果“是”则返回真,否则返回假
x<=y判断x是否小于等于y,如果“是”则返回真,否则返回假
x>y判断x是否大于y,如果“是”则返回真,否则返回假
x>=y判断x是否大于等于y,如果“是”则返回真,否则返回假
x==y判断x是否等于y,如果“是”则返回真,否则返回假
x!=y判断x是否不等于y,如果“是”则返回真,否则返回假
x is y判断x的地址(id)是否等于y,如果“是”则返回真,否则返回假
x is not y判断x的地址(id)是否不等于y,如果“是”返回真,否则返回假

七、数值运算符

Python语法中赋值运算符及其含义:

运算符含义
x=y将y的值赋给x
x+y返回x的值y的值相加的结果
x-y返回x的值减去y的值的结果
x*y返回x的值和y的值相乘的结果
x/y返回x的值除y的值的结果
x//y返回x除y的整数部分
x%y返回x除y的余数
-x返回负x
+x返回x的绝对值
abs(x)返回x的绝对值
int(x)返回x的整数值
float(x)返回x的浮点数
complex(re,im)定义复数
c.conjugate()返回复数的共轭复数
divmod(x,y)相当于(x//y,x%y)
pow(x,y)返回x的y次方
x**y返回x的y次方

八、逻辑运算符

通常在判断条件时,会需要判断多个条件,只有多个条件都满足时,才能执行后面的代码,这个时候就需要用到逻辑运算符。Python中的逻辑运算符包括and(与)、or(或)、not(非)三种。
(1)and(与/并且)
条件1 and 条件2,当两个条件都满足时,返回True,只要有一个条件不满足,就返回False。
(2)or(或/或者)
条件1 or 条件2,只要有一个条件满足,返回True,两个条件都不满足时,返回False。
(3)not(非/不是)
not 条件,当条件不满足时,返回True,当条件满足时,返回False。

九、判断结构

(1)简单的if语句:
最简单的if语句只有一个判断条件和一个操作,当条件测试为真时,执行if后面的代码块block。

'''
if 条件:
    block
'''
if 1<2:
    print(2)

(2)if-else 结构:
当if后面的条件测试为真时,执行代码块bolck1,否则执行代码块block2。

if 条件:
    block1
else:
    block2

(3)if-elif-else结构:
当判断分支不止一个时,选择if-elif-else结构,这里elif可以有多个;Python只执行if-elif-else中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试,Python将执行通过测试的条件后的代码,并跳过余下测试。

if 条件1:
    block1
elif 条件2:
    block2
else:
    block3 

十、循环结构

(1)while循环
当循环条件为真时,执行循环条件后的代码块。

'''
while 循环条件:
    代码块
'''
i = 1
su = 0
n = 10
while i <= n:
    su = su + i
    i = i + 1
print("从1加到%d结果是:%d"%(n,su))

注:(1)要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可以使用break语句。
(2)使用continue语句可以结束本次循环并开始下一次循环。对于多重循环情况,作用于最近的那重循环。

(2)for循环
将(1)中的代码示例使用for循环来实现,其形式如下:

'''
for 变量 in range(n):
    代码块
'''
i = 1
su = 0
n = 10
for i in range(n + 1):
    su = su + i
print("从1加到%d结果是:%d"%(n,su))

注:range(n)函数表示一个从0到n-1(不包含n)、长度为n的序列。range(n)函数可以定义步长,其默认步长为1。例如range(5)表示序列:0、1、2、3、4。range(1,12,3)表示序列:1、4、7、10。

十一、异常处理

(1)try-except结构
主要用于处理程序正常执行过程中出现的一些异常情况,如语法错误、数据除零错误、从未定义的变量上取值等。

try:
    print('处理代码')
except Exception as e:
    print('处理代码发生异常,在这里进行异常处理')

(2)try-except-finally结构
通常用于,无论程序是否发生异常,都要执行必须要执行的操作,如关闭数据库资源、关闭文件资源等。必须要执行的代码要放在finally块中。

try:
    print('处理代码')
except Exception as e:
    print('处理代码发生异常,在这里进行异常处理')
finally:
    print('无论处理代码是否发生异常,这里是必须执行的')

(3)try-except-else结构
程序执行try语句部分,当try语句部分发生异常则执行except语句部分,若不发生异常则执行else语句部分。

try:
    print('处理代码')
except Exception as e:
    print('处理代码发生异常时执行')
else:
    print('处理代码未发生异常时执行')

(4)try-except-finally-else结构
try-except-else结构的升级版,在其基础上增加了必须要执行的部分。

try:
    print('处理代码')
except Exception as e:
    print('处理代码发生异常时执行')
else:
    print('处理代码未发生异常时执行')
finally:
    print('无论处理代码是否发生异常都必须执行的部分')

十二、函数

在Python中,定义一个函数是通过def关键字来声明的。在函数中定义的参数为形参,调用函数时我们通过实参来向形参传值。如下例中,函数定义def fun(a,b):中的a和b为形参,函数调用fun(1,2)中的1和2为实参。

'''
def 函数名(参数):
    函数体
    return 返回值
'''
def fun(a,b):
    c = a + b
    return c #返回值
fun(1,2) #函数调用

注:函数可以传递参数,也可以不传递参数,可以有返回值,也可以没有返回值。
(1)传统参数传递
无参数传递:对函数进行调用时,不需要给出参数的值。

def fun():
    print("无参数传递")
fun()

固定参数传递:需要向函数传递固定的参数值。

def fun(x):
    print(x)
fun("有参数传递")

(2)默认参数传递
在编写函数时,可以给每个形参指定默认值,也可以给部分形参指定默认值。在调用函数中给形参提供了实参时,则使用指定的实参值,否则,将使用形参的默认值。

def fun(x,y = 100,z = 'Hellow World'):
    print(x,y,z)
fun(0)
fun(0,12)
fun(12,12,'abc')

注:在给参数赋值时要注意参数的顺序,除非标明这个数值是赋给哪个参数的,不标明就必须按照“出场”的顺序,否则可能会出现意想不到的结果。
(3)未知参数个数传递
如果我们不知道传进来多少个参数时,可以使用未知参数个数的传递机制,只需要在参数前面加个*即可。

def fun(x,*args):
    print(x)
    for i in args:
        print(i)
fun('水果有:','苹果','香蕉','梨')

(4)带键参数传递
带键参数传递指参数通过键值对的方式进行传递,只需要在参数前面加**即可。

def fun(x,**kargs):
    print(x)
    for i in kargs:
        print(i,kargs[i])#i为键名,kargs[i]为键值
fun('水果有:',a = '苹果',b = '香蕉',c = '梨')

十三、回调函数

回调函数又叫函数回调,指将函数作为参数传递到另外的函数中执行。例如将A函数作为参数传递到B函数,然后在B函数中执行A函数。这种做法的好处是在函数被定义之前就可以使用函数,或者对于其他函数提供的API(可看成函数)进行调用。

def func(fun,args):
    fun(args)
    
def f1(x):
    print('f1函数:',x)
    
func(f1,1)

十四、闭包

定义:在一个内部函数里对在其外部作用域的变量进行引用。

def funX(x):
    def funY(y): #定义内部函数
        return x*y #此处引用了外部作用域的变量x
    return funY
i = funX(9)
i(10)

注:闭包与回调函数有相通之处,回调函数是将函数作为参数传递,闭包是将函数作为返回值返回。闭包可以延长函数的作用时间与作用域。

十五、函数的递归与嵌套

函数的递归是指函数在函数体中直接或间接的调用自身的现象。

def fac(n):
    if n == 1:
        return 1
    else:
        return n*fac(n-1)
if __name__ == '__main__':
    number = int(input('请输入一个正整数:'))
    result = fac(number)
    print('%d的阶乘是:%d'%(number,result))

函数的嵌套是指在函数中调用另外的函数。

def args_input():
    try:
        A = float(input("输入A:"))
        B = float(input("输入B:"))
        C = float(input("输入C:"))
        return A,B,C
    except:
        print("请输入正确的数值类型!")
        return args_input()
    
def get_delta(A,B,C):
    return B**2 - 4*A*C

def solve():
    A,B,C = args_input()
    delta = get_delta(A,B,C)
    if delta < 0 :
        print("该方程无解!")
    elif delta == 0:
        x = B/(-2*A)
        print("x = ",x)
    else:
        x1 = (B + delta**0.5)/(-2*A)
        x2 = (B - delta**0.5)/(-2*A)
        print("x1 = ",x1)
        print("x2 = ",x2)
def main():
    solve()
if __name__ == '__main__':
    main()

补充:if name == ‘main’:下的代码只有文件作为脚本直接执行时才会被执行,而import到其他脚本中是不会被执行的。

十六、匿名函数lambda

匿名函数指调用一次或几次后就不再需要的函数,属于“一次性”函数。对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,可以考虑使用lambda来定义。Python中允许用lambda关键字定义一个匿名函数。

g =  lambda x,y : x + y
g(5,6)

十七、迭代器

迭代器是访问可迭代对象的工具,迭代器是指用iter(obj)函数返回的对象(实例),用next(it)函数获取可迭代对象的数据。

string = 'abcdefg'
it = iter(string)
while True:
    try:
        each = next(it)
    except StopIteration:
        break
    print(each)

注:(1)当next(it)函数无法获取下一条记录时,会抛出StopIteration异常。
(2)迭代器只能向前取值,不会后退。
(3)使用iter可返回一个可迭代对象的迭代器。

十八、生成器

yield关键字可以将函数执行的中间结果返回但不结束程序,其作用是把一个函数变成一个generator(生成器)。

def fun(n):
    i = 0
    while i < n:
        yield i
        i += 1
for i in fun(10):
    print(i)

python初阶—基础语法篇(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值