python基础——判断、循环、函数

举报
AOAIYI 发表于 2023/02/18 09:37:21 2023/02/18
【摘要】 1.掌握判断结构的语法 2.掌握循环结构的语法 3.掌握函数编程

Python基础三——判断、循环、函数

实验目的

1.掌握判断结构的语法

2.掌握循环结构的语法

3.掌握函数编程

实验原理

Python的比较操作符:
image.png
在Python中,定义函数的语法如下:

def 函数名([参数列表]):

‘’‘注解’’’

函数体

定义函数时,需要注意的问题:①函数形参不需要声明其类型,也不需要指定函数返回值类型,②即使该函数不需要接受任何参数,也必须保留一对空的圆括号,③括号后面的冒号必不可少④函数体相对于def关键字必须保持一定的空格缩进。

实验环境

Python 3.5以上

PyCharm

实验内容

1.选择结构

2.循环结构

3.函数编程

4.lambda表达式

实验步骤

一、选择结构

Python的条件分支语法:
image.png
1.下面我们打开Pycharm进行,if判断条件练习。

双击打开Pycharm
image.png
2.创建一个新项目,名为demo
image.png
3.创建一个Python文件,名为guess_data
image.png
image.png
4.编写代码:利用if判断来制作一个猜数字的小游戏:

# 正确数字为5  
enter_data = input('请输入您猜的数字:')  
guess = int(enter_data)  
if guess == 5:  
    print('恭喜您猜对啦')  
else:  
    if guess > 5:  
        print('猜大了')  
    else:  
        print('猜小了')  
  
print('游戏结束')  

5.选中guess_data文件,右键点击Run“guess_data”运行代码
image.png
运行结果如下
image.png

二、循环结构

Python的While循环语法:当while条件为ture的时候执行循环体中的内容,当while条件为false时,不执行循环体中的内容
image.png
6.我们来为刚才的猜数字的小游戏代码加入while循环,使之更加健壮(将下面代码写入guess_data文件并覆盖原来代码):

#引入random模块  
import random  
#调用random模块中的randint()函数,它会随机的返回一个十以内整数  
secret = random.randint(1,10)  
print('来玩个猜数字游戏吧')  
print(secret)  
enter_data = input('您猜的数字是什么:')  
guess = int(enter_data)  
guess_num = 1  
if guess == secret:  
    print("恭喜您猜对啦,游戏结束!")  
else:  
    #加入while循环,如果循环次数小于3则继续执行,反之停止  
    while guess != secret and guess_numsecret:  
            enter_data = input('猜大了,请重猜:')  
        elif guess < secret:  
            enter_data = input('猜小了,请重猜:')  
        guess = int(enter_data)  
        guess_num += 1  
        if guess == secret:  
            print("恭喜您猜对啦,游戏结束!")  
        elif guess != secret and guess_num ==3:  
            print("次数用光了,游戏结束!")  

运行结果:
image.png
Python的For循环语法
image.png
7.双击打开终端模拟器,输入python3,进入Python交互式环境,在里面进行下面的多个命令。

image.png
使用for循环遍历range(10)对象

for i in range(10):  
    print(i)  

image.png

三、函数结构

在Python中,定义函数时不需要声明函数的返回类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。无论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。如果函数没有return语句或者执行不返回任何值的return语句,Python将认为该函数以return None结束,即返回空值。

8.下面的函数用来计算斐波那契数列中小于参数n的所有值。

#定义函数,括号里的n是形参  
def fib(n):  
    #accept an in integer n. return the numbers less than n in Fibonacci sequence.  
    a,b=1,1  
    while a<n:  
        print(a,end=' ')  
        a,b=b,a+b  
    print()  
 
#调用该函数的方式为:  
fib(1000)  

image.png
注意:在定义函数时,开头部分的注释并不是必须的,但是如果为函数的定义加上一段注释的话,可以为用户提供友好的提示和使用帮助。

9.在调用函数时,一定要注意函数有没有返回值,以及是否会对函数实参的值进行修改

a_list=[1,2,3,4,9,5,7]  
print(sorted(a_list))  
#原列表内容没变  
print(a_list)  
#列表对象的sort()方法没有返回值  
print(a_list.sort())  
print(a_list)  

image.png
10.拓展知识:函数属于可调用对象,由于构造函数的存在,类也是可以调用的。另外,任何包含__call__()方法的类的对象都是可调用的。

def linear(a,b):  
    #函数是可以嵌套定义的  
    def result(x):  
        return a*x+b  
    return result  

下面代码演示了可调用对象类的定义

class Linear:  
    def __init__(self,a,b):  
        self.a,self.b=a,b  
    def __call__(self,x):  
        return self.a*x +self.b  

使用上面的嵌套函数和类这两种方式中任何一个,都可以通过以下的方式来定义一个可调用的对象:

taxes=linear(0.3,2)  

然后通过下面的方式来调用该对象

taxes(5)  

image.png
函数定义时,圆括号内是使用逗号分隔开的形参列表,一个函数可以没有参数,但是定义和调用时一对圆括号必须要有,表示这是一个函数并且不接受参数。函数调用时向其传递实参,根据不同的参数类型,将实参的值或引用传递给形参。

11.对于绝大多数情况,在函数内部直接修改形参的值不会影响实参。

def addOne(a):  
    print(a)  
    #得到新的变量  
    a+=1  
    print(a)  
  
a=3  
addOne(a)  
print(a)  

image.png
12.在一些特殊情况下,可以通过特殊的方式在函数内部修改实参的值。

#修改列表元素值  
def modify(v):  
    v[0]=v[0]+1  
  
a=[2]  
modify(a)  
print(a)  
#为列表增加元素  
def modify(v,item):  
    v.append(item)  
  
a=[2]  
modify(a,3)  
print(a)  
#修改字典元素值或字典增加元素  
def modify(d):  
    d['age']=38  
  
a={'name':'Dong','age':37,'sex':'Male'}  
modify(a)  
print(a)  

image.png
传递参数时的序列解包

13.调用含有多个参数的函数时,可以使用Python列表,元组、集合、字典以及其他可迭代对象作为实参,并在实参名称前加一个星号“*”,Python解释器将自动进行解包,然后传递给多个单变量形参。

def demo(a,b,c):  
    print(a+b+c)  
 
#列表  
seq=[1,2,3]  
demo(*seq)  
#元组  
tup=(1,2,3)  
demo(*tup)  
#字典  
dic={1:'a',2:'b',3:'c'}  
demo(*dic)  
#集合  
Set={1,2,3}  
demo(*Set)  

image.png
注意:字典若想作为实参时默认使用字典的“键”,如果需要将字典中“键:值”元素作为参数则需要使用items()方法明确说明,如果需要将字典的“值”作为参数则需要调用字典的values()方法明确说明。

四、lambda表达式

14.lambda表达式用来声明匿名函数,即没有函数名临时使用的函数。lambda表达式只可以包含一个表达式,不允许包含复杂的语句,但表达式中可以调用其他函数,并支持默认参数和关键参数,该表达式的计算结果相当于函数的返回值。

f=lambda x,y,z:x+y+z  
#把lambda表达式作为函数使用  
print(f(1,2,3))  
#lambda表达式可以含有默认参数  
g=lambda x,y=2,z=3:x+y+z  
print(g(1))  
#使用关键参数调用lambda表达式  
print(g(2,z=4,y=5))  
#lambda表达式作为函数的参数  
L=[1,2,3,4,5]  
print(map(lambda x:x+10,L))  
#在lambda表达式中可以调用函数  
def demo(n):  
    return n*n  
  
a_list=[1,2,3,4,5]  
map(lambda x:demo(x),a_list)  

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。