Python0基础(下)——期末不挂科

前言

今天,大概就是不挂科系列的最后一章了,感谢你们的鼓励,让我坚持把这个系列写完,秋名山的路很长,当你失去的东西后,会有其他的事物补充上来的,所以让我们今天用排水渠一样的技巧来,展示我们势必不挂科的勇气!
最后这个部分我打算用俩个小节来收尾,函数真题

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

万物存在即有它的价值,像你我一样,试想一下,函数存在的意义是什么?从定义来看,可重复利用,假如要实现俩个数的交换操作,a,b交换
当然在python中可以写a,b = b,a这样的语句,但是你是不是每次都要写?
如果写一个函数,只需要传入俩个参数就实现交换数字的操作,a,b又亦或是c,d

def swap(a,b):
  # 创建临时变量,并交换
    temp = a
    a = b
    b = temp
    print(a,b)

用上面这个例子来说明,函数的基本用法

定义一个函数

  1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  2. 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  3. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    函数内容以冒号 : 起始,并且缩进。
  4. return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

Python0基础(下)——期末不挂科_第1张图片
下面我们来做一个例子,返回最大值的函数

def max(a, b):
    if a > b:
        return a
    else:
        return b
 
a = 4
b = 5
print(max(a, b))

函数调用

实际上你刚刚在不经意间已经调用了max,没错就是这么的简单,

def max(a, b):
    if a > b:
        return a
    else:
        return b
 
a = 4
b = 5
print(max(a, b))
print("再次调用max",max(5,6))

参数

这个老师讲的岌岌可危,虽然我旷课,但是基本概念还是没有问题的,下面让我这个小小码民来说一下几个必要的概念

  • 实参:函数实际传入的参数
  • 形参:函数()中提前定义的参数

四大参数

  1. 位置参数:函数的参数传入的位置
  2. 默认参数:形参和实参可以不一致,如果不想使用默认的参数,在调用函数的时候可以指定(调用函数时,默认参数的值如果没有传入,则被认为是默认值),即max(5,6)
  3. 可变参数:a代表可变参数,a使元组数据类型
    def mysum(*;a)可变参数在函数调用时候,自动组装为一个元组(tuple)
  4. 关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,0意味着关键字参数可填可不填,这些关键字参数在函数内部自动组装为一个dict。

实际上这么多函数参数,理解形参和实参就够用了,毕竟看了题库后,函数的考察还是停留在应用上,我们的目的就是不挂科,

题库解答

累加思想

这类题目有一个特点就是,给你一串数字,或直接是一个列表,然后让计算数值,一般情况下,定义一个sum=0,来累加sum,从而解决问题

题目:请补充横线处的代码。dictMenu中存放了你的双人下午套餐(包括咖啡2份和点心2份的价格,让Python帮忙计算并输出消费总额。
要求:输出一个数字

dictMenu = {
     '卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
sum = 0
for i in dictMenu.values():
  sum +=  i
print(sum)

这是字典,对于字典的值的遍历,详细可参考前面的文章

多重判断

通俗的来讲就是if判断,if嵌套判断,循环语句中使用if

题目:从键盘为一维整型数组输入10个整数,找出其中最小的数,
在main函数中输出。
要求:采用内置函数完成

思路:
定义一个最小的值,用for循环各个元素逐个与min进行比较,或者直接用min函数

def main():
    list_first = []
    for i in range(10):
        a = input("【请分别输入10个整数,每输入一个整数按回车确认:】")
	x = min(a)
    print("【最小数是:】%d " % x);
if __name__ == '__main__':
    main()

或者这样:

for i in range(10):
	if x>a[i]:
		a[i] = x

水仙花数,回文是出现次数比较多的入门题,和我高中初赛差不多,都是入门,给定一个概念来考察循环+判断,也比较简单,但是很有必要学一下

水仙花数

所谓“水仙花数”是指一3位数,其各位数字立方和等于该数本身。
153是一个水仙花数,因为153=1+125+27
首先我们要学一下,如何来计算个,十,百,各位的数字
a=153 ge=a%10取余 shi=a//10%10 a除10为百位,百位取余为个 bai=a//100

好了,我们来看题

def fun(i):
    ge = i % 10
    shi = i // 10 %10
    bai = i // 100
    if (ge**3+shi**3+bai**3 == i):
    	return 1
    else:
    	return 0

def main():
    print("【请连续判断四次输入的三位数是否为水仙花数:】")
    for n in range(4):
        print("【第%d次:】" %(n+1))
        a = int(input("【请输入一个三位数,并按回车确认:】"))
        flag=fun(a)
        if flag:
            print("%d是【水仙花数】" %a)
        else:
            print("%d不是【水仙花数】" %a)
if __name__ == '__main__':
    main()

回文——字符串

由于回文的特殊性,所以将它与字符串迭代起来考察就成了特别好的入门习题了,也导致在考试中频繁出现,所以说这个必看!与水仙花数重要性是一样的

abcdcba是回文。abcdefg不是回文。也就是反转字符串,还是老样子笨办法和函数办法

函数办法:

s = input('')
if not s:
    print('请不要输入空字符串!')
    s = input('请重新输入一个字符串:')
a = reversed(list(s))#函数反转
if list(a) == list(s):#强制转换列表
    print('是回文')
else:
    print('不是回文')

循环笨办法:

s[0:len(s)//2]==s[-1:len(s)//2:-1]
python很强大,可以逆着来判断,但是在c中可能要求比较多

列表插入

ls 是一个列表,内容如下:
ls = [123, “456”, 789, “123”, 456, “789”]
请补充如下代码,在 789 后增加一个元素 012。

ls.insert(2,012) #插入函数

质(素)数判断

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

想要判断一个素数,首先要进行一个特殊判断,因为<2的数都不是素数

x = int(input())
if x<2:
	print("f")

接下来,我们要进行大于2的数的判断。方法就是:用数x对从2到x平方根依次取模,如果结果为0,说明x不是质数,如果一遍判断下来取模结果都不为0,则说明x为素数

import math
x = int(input())
f = 0

for i in range(2,int(math.sqrt(x))):
	if x % i == 0:
		print("f")
		f = 1

if f = 0:
	print("t")

用户自定义函数就如下所示:

import math

def isprime(x):
    if x<2:
        return "F"

    for i in range(2,int(math.sqrt(x))+1):
        if x % i == 0:
            return "F"

    return "T"

x = int(input())
print(isprime(x))

最后

还有就是几个画图的库,由于自己也没有学,所以还希望大家能自学一下,主要是记忆为主,毕竟以后也不一定用python做为主语言来进行工作,如果我有时间会在考试前做一个背诵专题,一切以时间的充分为主,过几天会写一个go+语言的推广,还请大家来捧场,这个是有奖金的,说白了我穷,可怜一下这个小博主吧!

由于博主不是python出身,所以只能根据题库所写,与网上资源,和自己自学理解,来搞出这个不挂科系列,如有不足,还请评论区指教,感谢大家的支持,原创不易,给个三连

你可能感兴趣的:(不挂科,python)