Python学习:5.条件控制语句、三目运算、循环语句、函数

条件控制语句

if语句

简单if判断语句,当if后面的条件为真的时候,执行print('yes'),否则执行else里面的语句,print('No')

if True:
    print('yes')
else:
    print('No')

多次判断

首先判断pd是否大于零,否则判断pd是否小于零

pd = input('请输入数字:')
pd = int(pd)        #使用input拿到用户输入的值得类型都是字符串
if pd > 0:
    print('输入的为正值')
elif pd < 0:
    print('输入的为负值')
else:
    print('输入的为零')

三目运算

三目运算就是将if else语句通过一条语句表示出来,格式如下

name=值1 if 条件 else 值2
如果"条件"成立就把"值1"赋值给"name"
如果"条件"不成立就把"值2"赋值给"name"
name="alexsel" if 1==1 else "eric"
print(name)

输出结果:
alexsel

三目运算的的目的就是减少代码量。

循环语句

 一、for循环

遍历输出有多个元素的数据,例如一个字符串,一个列表。使用in拿到后面变量里的单个元素。

str = "alexsel"
list = [1,2,3,'alexsel']
for i in str:
    print(i)
print('----------------')
for k in list:
    print(k)

输出结果:
a
l
e
x
s
e
l
----------------
1
2
3
alexsel

可以使用break提前结束循环

for i in range(10): #使用range一个可循环的0到9的数列。
    print(i)
    if i == 5:
        print('结束循环')
        break    #如果不提前结束就输出1到9


输出结果:
0
1
2
3
4
5
结束

使用continue跳过一次循环

for i in range(10): 
    if i == 5:
        continue    #使用这个语句之后,跳过本次循环中在continue之后的语句,在这里跳过了print(i),5没有输出
    print(i)



输出结果:
0
1
2
3
4
6
7
8
9

二、while循环

while一般形式如下

while 条件:
    语句

当条件为真的时候一直执行,直到条件为假。

var = 1
while var < 10:
    print(var)
    var += 1


输出结果:
1
2
3
4
5
6
7
8
9

当条件一直为真,会无限循环。

var = 1
while var == 1:
    print(var)


输出结果:
1
1
1
1
1
....

while循环中使用else,当while循环为假的时候,执行else中的语句。

i = 0
while i < 5:
    print(i)
    i += 1
else:
    print('i等于5')


输出结果:
0
1
2
3
4
i等于5

函数

一、创建函数

1、创建一个函数的基本格式

def 函数名(形式参数):
    函数体
    return "123"
   

二、函数的返回值

函数执行了return之后就不再执行下面的代码,并且将返回的值给调用函数之后赋予的变量。

def f2():
    name = 'alexsel'
    return name

tem = f2()
print(tem)



输出结果:
alexsel

三、函数的调用

使用函数的名字调用函数

def f1():
    print('我被调用了')

f1()    #在这里函数被调用

四、向函数中传入参数

传入函数中的参数需要一一对应,在下面的示例中,alexsel将值传给name,50传给age,是第几个,就传递给第几个。

def obj(name,age):
    return name+'的年龄为'+str(age) #这里传入的参数的类型为数值,我们要做字符串拼接,将它转换为字符串

str = obj('alexsel',50)
print(str)


输出结果:
alexsel的年龄为50

五、函数可以有默认参数

一个函数中的参数可以设置默认值,当没有对参数传递值得时候,就使用默认值,有默认值的参数应该放在没有默认参数的后面。

def drive(name=""):  #name这个有默认参数,有默认参数的应放在无默认参数的后面,否则报错,无默认参数的必须传参数,有默认参数的可以不传参数
    temp=name+"开车"    
    return temp
ret=drive("you") 
print(ret)
ret=drive("he")
print(ret)
ret=drive()
print(ret)

输出结果:
you开车
he开车
我开车

六.动态参数

1.可以接收多个值的动态参数

def a1(*a):  # 动态参数,可以接受多个值
    print(a, type(a))  # 现在a的类型为元组,把你传入的实参当作元组的元素

a1(123, 3, 444, 555, [11, 22, 33])  # 这里的传入的列表视为一个元素



输出结果:
((123, 3, 444, 555, [11, 22, 33]), <type 'tuple'>)

2.以及将接收多个参数转换为字典的动态参数

def a2(**b):  # 动态参数,接收的参数转换为字典
    print(b, type(b))  # b的类型为字典,传过来的参数转换为字典


a2(k1=123, k2=345)



输出结果:
({'k2': 345, 'k1': 123}, <type 'dict'>)
def a3(p, *a, **aa):        #这里的a拿到传入的第一个参数,*a拿到不是字典类型的参数,**拿到传入是字典类型的参数
    print(p, type(p))
    print(a, type(a))
    print(aa, type(aa))

a3(11, 22, 33, k1=123, k2=456)
# 在这里自动把11给p,22,33给*a,把k1=123,k2=456给**a
# **要在*前面,这两个要在一般参数数的后面,而且实参也要按此排序


输出结果:
(11, <type 'int'>)
((22, 33), <type 'tuple'>)
({'k2': 456, 'k1': 123}, <type 'dict'>)

3、为动态参数传入 列表、字典、元组的示例:

将字典传入函数中不能直接传递,需要在传递的函数之前添加**

def f1(*args):
    print(args)

li = [11, 22, 33]
f1(li)  # 这样传参数则这个args元组的第一个元素为列表[11,22,33]
f1(*li)  # 这样传参数是会把这个列表的每一个元素一一传过去结果会是
# 这个列表的每一个元素会成为args元组的每一个元素(11,22,33)

def f2(**kwargs):
    print(kwargs)
dic = {"k1": 123, "k2": "aas"}
#f2(dic)  # 这样传参数报错
f2(k1=dic)  # 这样传参数会变成kwargs={"k1":{"k1":123,"k2":"aas"}
f2(**dic)  # 要想把dic里的元素一个一个传过去,格式为kwargs={"k1":123,"k2":"aas"},需要在dic前加**

输出结果:
([11, 22, 33],)
(11, 22, 33)
{'k1': {'k2': 'aas', 'k1': 123}}
{'k2': 'aas', 'k1': 123}

七、局部变量、全局变量

1、局部变量

局部变量一般在函数中定义,它的作用域也仅仅只在这个函数中可以调用,在函数之外不能调用。

def f1():
    a=123
    print(a)#这个a为局部变量只有这个函数里才能用
f1()
print(a)#在函数之外输出这个a会报错

输出结果:
123
然后是报错信息

2.全局变量

a = 1234  # 全局变量
b = 1000001

def f1():
    a = 123  # 这个a为局部变量只有这个函数里才能用
    print(a)  # 在这里输出的是局部变量,在自己的函数中首先寻找自己函数中是否定义了这个变量,如果没有就使用全局变量
    print(b)

f1()


输出结果:
123
1000001

如果想在函数之外调用函数中定义的变量,可以在函数中定义一个全局变量

a = 1234

def f1():
    global a  #在这里定义了一个全局变量,在下面对全局变量进行重新赋值
    a = 123
    print(a)  # 输出结果为:123

f1()
print(a)  # 输出结果为:123


输出结果:
123
123

Python中还有大量的内置函数,我们在以后的学习中会继续讲解,今天的学习到此结束了,如果有错误的地方欢迎大家指出。

猜你喜欢

转载自www.cnblogs.com/liudi2017/p/9179405.html