函数基础 if for while 自定义

##if 布尔表达式1:
##分支
##注意,每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块
## 满足条件返回真
##• >>> score = 91
##• >>> score >= 90 & score <= 100
##• True
##程序只对成绩进行了一次判断,条件满足的时候,则返回真,打印的结果就是“本次考试:成绩等级为A”。
##• >>> score = 91
##• >>> if score >= 90 & score <= 100:
##• … print('本次考试,成绩等级为:A')
##• 本次考试,成绩等级为:A
##多路分支
##if语句设置多路分支的一般格式如下
##if 布尔表达1:
##分支一
##elif 布尔表2:
##分支二
##else:
##分支三
##score=78,0-60,不及格;60-75,及格;75-85,良好;85-100,优秀
a="40"
if a>50:
    print(True)
elif a<50:
    print(False)
score=78
if score>=0 and score<60:
    print("不及格")
elif score>=60 and score<75:
    print("及格")
elif score>=75 and score<85:
    print("良好")
elif score>=85 and score<=100:
    print("优秀")
else:
    print("输入错误,请重新输入")
##标准值False和None,数字0和所有空序列都为False,其余的单个对象都为True。
##在表达式运算的过程中,True会视为数值1,False会视为数值0,这与其他编程语言是相似的。逻辑表达式
##是布尔表达式的一种,逻辑表达式指的带逻辑操作符或比较操作符(如>,==)的表达式。
##for循环
##for循环在Python中是一个通用的序列迭代器,可以遍历任何有序的序列,如字符串、列表、元组等。程序语言的学习是一个循环的过程,与其他学科不同,程序语言的知识是相互紧扣的。
##Python中的for语句接受可迭代对象,如序列和迭代器作为其参数,每次循环调取其中一个元素。
##Python的for循环看上去像伪代码,非常简洁
##for循环对字符串,列表的遍历

for a in ['e','f','g']:
     print(a)
for a in 'string':
    print(a)
##while循环
##while 布尔表达式:
##程序段
##当条件判断语句即布尔表达式一直为真时,就会进行无限次循环,无限循环可以使用CTRL+C来中断循环。
##Python要像C语言的格式进行循环,实际上需要的是一个数字序列,range函数能够快速构造一个数字序列。例如range(5)或range(0,5)即为序列0,1,2,3,4。注意这里包括0,但不包括5。
##Python中for i in range(5)的效果和C中for(i=0;i<5;i++)的效果是一样的。range(a,b)能够返回列表[a,a+1,…,b-1](注意不包含b),这样for循环就可以从任意起点开始,任意终点结束。
## range函数经常和len函数一起用于遍历整个序列。len函数能够返回一个序列的长度,for i in range(len(L))能够迭代整个列表L的元素的索引。直接使用for循环似乎也可以实现这个目的,但是直接使用for循环难以对序列进行修改(因为每次迭代调取的元素并不是序列元素的引用),而通过                      range函数和len函数可以快速通过索引访问序列并对其进行修改。
i=1
sum=1
while i<=100:
    sum*=i
    i=i+1
print(sum)
##range函数
for i in range(0,5):
        print(i)
##result:0,1,2,3,4
for i in range(0,6,2):
       print(i)

##0,2,4 #相邻元素的间隔为2
##break、continue、pass语句
##   break语句的作用,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在while和for循环中。如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
##continue语句的作用是跳出本次循环,而break跳出整个循环。continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
## pass是空语句,作用是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。pass语句是为了保持程序结构的完整性。
for  i in range(10):
    if i%2==1:
        print(i)
    else :
        continue
for  i in range(10):
    if i%2==1:
        print(i)
    else :
        break
##嵌套循环
##而Python语言是允许在一个循环体里面嵌入另一个循环的。可以在for循环中再嵌入一个for循环,也可以在for循环中嵌入while循环,还可以在while循环中嵌入for循环,当然还有在while循环中嵌入while循环。
##有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
for i in range(1,5):
    for j in range(1,5):
        for s in range(1,5):
            if i!=j and i!=s and j!=s:
                print(i,j,s)
##嵌套循环
for i in range(10):
    for j in range(2):
        print("5")
##用嵌套循环写出9*9
##两个for循环
for i in range(1,10):
    for j in range(1,10):
        s=i*j
        print(i,"*",j,"=",s)
##尝试用一个whlie循环写出   然而。。。。
i=1
j=1
while (i<10,j<i+1):
    i = i + 1
    j = j + 1
    s=i*j
    print(i,"*",j,"=",s)
##一个while,一个for写出9*9
##while在前,for在后
i=1
while (i<10):
    for j in range(1,i+1):
        s=i*j
        print(i,"*",j,"=",s)
     i=i+1
##for在前,while在后
i=1
for i in range(1,10):
    j=1
    while (0<j<i+1):
        s=i*j
        print(i,'*',j,'=',s," ")
        j=j+1
    i=i+1
##将i从大到小赋值
i=9
while (i>0):
    for j in range(1,i+1):
        s=i*j
        print(i,"*",j,"=",s)
    i=i-1
##两个while循环求9*9
i=1
while (i<10):
    j = 1
    while (j<(i+1)):
        s=j*i
        print(j,"*",i,"=",s)
        j=j+1
     i=i+1
##实现9*9表的模式
i=1
while (i<10):
    j = 1
    while (j<(i+1)):
        s=j*i
        print(j,"*",i,"=",s,end=' ')
        j=j+1
    i=i+1
    print('\n')
##列表推导式
[x**2 for x in range(10) if x%2==0]
##结果           函数         条件
##map(高阶函数)(lambda(匿名函数) x: x**3, range(6))    #计算x的三次幂
##filter(过滤型函数)(lambda x: x % 2, seq)
[(i,j) for i in range(0,3) for j in range(0,3)]
a=[x for x in range(100) if x%2==0]
函数
函数是Python为了代码效率的最大化,减少冗余而提供的最基本的程序结构。 
 函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据( 返回值),也可以没有返回值。 
  如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的 代码块组织为一个小模块,这就是函数
##自定义函数创建
## 使用关键字def定义函数,其后紧接函数名,括号内包含了将要在函数体中使用的形式参数(简称:形参,调用函数时的为实参),以冒号结束。然后另起一行编写函数体,函数体的缩进为4个空格或者一个制表符。
##定义函数的格式如下:
##def 函数名():
##  代码
【return 返回值】 可不加
##demo:
## 定义一个函数,能够完成打印信息的功能 •
def printInfo():
    print('------------------------------------')
    print('         生命苦短,我用Python')
    print('------------------------------------')
def M(n):
    X=[(x,y,s) for x in range(1,n+1) for y in range(1,n+1) for s in range(1,n+1) if x!=y and x!=s and s!=y]
    print(len(X))
M(10)
def M(q,n):
    X=[(x,y,s) for x in range(q,n+1) for y in range(q,n+1) for s in range(q,n+1) if x!=y and x!=s and s!=y]
## 函数参数设置
## Python中的函数参6+
# 数主要有四种:位置参数,关键字参数,默认参数,可变参数
##map 它的基本样式为map(func,list)。其中func是一个函数,list是一 个序列对象。在执行的时候,序列对象中的每个元素,按照从左到 右的顺序通过把函数func依次作用在list的每个元素上,得到一个新 的list并返回。
#  fib fib函数是一个递归函数,最典型的递归例子之一就是斐波那契数 列。根据斐波那契数列的定义,可以直接写成斐波那契递归函数。
# filter filter函数接收一个函数func和一个list,这个函数func的作用是对每 个元素进行判断,返回True或False来过滤掉不符合条件的元素,由符合条件元素组成的新list。
#等差数列的和
def fun(start=0,stop=100,step=1):
    sum=0
    for i in range(start,stop,step):
        sum+=i
    return sum
fun(20,65,2)
习题
##1.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
B=[]
for i in range(1,5):
    for j in range(1,5):

            if i!=j :
                B.append((i,j,))
print(len(B),B)
##有5个随机数字,求他能组成多少种不同的4位数组合
def fun(data):
    B=[]
    for i in data:
        for j in data:
            for k in data:
                for h in data:
                    if i!=j and i!=k and i!=h and j!=k and j!=h and k!=h:
                        B.append((i,j,k,h))
    print(len(B))
fun([5,4,2,7,8])
##2.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少????
x=1
for i in range(9):
    x=(x+1)*2
    print(x)
x=1
for i in range(9,0,-1):
    x=(x+1)*2
    print(x)
##3.求1+2!+3!+...+20!的和   ???????
sum=0
for a in range(1,21):
    y = 1
    for i in range(1,a+1):
        y=y*i
    sum=sum+y
    print(sum)
##4.从键盘输入一个整数,判断该数字能否被 2 和 3 同时整除,能否被 2 整除,能否被 3 整除,不能被 2 和 3 整除。输出相应的语句
a=int(input("请输入一个整数"))
if (a%2==0) and (a%3==0):
    print("该数字能被2,3同时整除")
elif a % 2 == 0 and (a % 3 != 0):
    print("该数字能被2整除,不能被3整除")
elif a % 3 == 0 and a % 2 != 0:
    print("该数字能被3整除,不能被2整除")
else:
    print("不能被2,3整除")
##5.a使用while循环实现输出2-3+4-5+6...+100的和     ????
a=2
sum=0
y=1
while a<=100:
        sum=sum+a*y
        a+=1
        y*=-1
print(sum)
##2.
sum=0
i=2
while i<=100:
    if i%2==0:
        sum+=i
    else:
        sum-=i
    i=i+1
print(sum)
##6.说一说[x**2 for x in range(10) if x%2==0]的执行过程和结果。
[x**2 for x in range(10) if x%2==0]
##结果           函数         条件
##计算x的2次幂  用for循环range函数从0到9步长为1的自增  如果x是偶数,输出他的2次幂
##结果[0, 4, 16, 36, 64]
##7.定义一个函数,接受两个参数,在函数体里打印输出“小的那个是XX”,然后返回较大的那一个
def A(a,b):
    if a>b:
        print("小得那个是%s"%b)
        return a
    else:
        print("小的那个是%a"%a)
        return b

A(5,1)
##8.定义一个lambda函数,接受两个参数,第二个参数默认为5,返回两个数的立方和。
f = lambda x:x**3+5**3
f(3)
##lambda匿名函数   前边是参数  后边是算法
s=(lambda x,y=5:x**3+y**3)
s(2)
##9.定义一个函数,把输入的数分解出个位,十位,百位…………。
def Aa(x):
    ge=x%10
    shi=x//10%10
    bai=x//10//10%10
    print(ge,shi,bai)
Aa(456)

def E(v):
    c=str(v)
    for i in range(len(c)-1,-1,-1):
        print(c[i])
    print(len(c))
E(5486)
def k(b):
    l=str(b)
    for i in range(0,len(l),1):
        print(l[i])
k(5486)
def W(x):
    c = str(x)
    c1 = len(c)
    for i in range(c1):
        y=x//(10**i)
        y=y%10
        print(y)
W(54321)
##10.定义一个函数,求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由参数控制???
def C(a,d):
    sum=0
    for q in range(d+1):
        y=0
        for x in range(q):
            y+=a*(10**x)
        sum=sum+y
    return sum
C(3,6)
def D(a,b):
    sum=0
    y=0
    for x in range(b):
        y+=a*(10**x)
        sum=sum+y
    return sum
D(3,6)


list2=[1,2,3,4,5,6]
len(list2)
list2[0]
A=i
def fun(*v):
    sum=0
    for i in v:
        sum+=i
        a=sum/len(v)
    return a
fun(25,85,68,48,25,36)

menu=('感谢您的使用。',
('香辣鸡腿堡','劲脆鸡腿堡','新奥尔良烤鸡腿堡','伴鸡伴虾堡'),
('薯条','黄金鸡块','香甜粟米棒'),
('可口可乐','九珍果汁','经典咖啡'))
select=int(input('请选择需要进行操作的对应数字,'
'查询汉堡类菜单请输入1,'
'查询小食类菜单请输入2,'
'查询饮料类菜单请输入3,'
'若不查询请输入0:'))
print(menu[select])
import math
list1=[25,85,68,48,25,36]
list(map(lambda x:math.sqrt(x),list1))
list(map(lambda x:x**3,range(1,6)))
list(map(lambda x,y:x+y,list1))
##1.定义一个lambda函数,接受两个参数,第二个参数默认为5,返回两个数的立方和。
s=(lambda x,y=5:x**3+y**3)
s(2)
##2,定义一个函数能够实现一个随机数量的列表,求此列表的中位数
def fun(*args):
    A=[]
    for i in args:
        A.append(i)
    A.sort()
    if len(A) % 2 == 1:
        m = int((len(A) + 1) / 2)
        print('奇数时中位数为',A[(m - 1)])
    if len(A)%2==0:
        c=int(((len(A)/2)+((len(A)/2)+1))/2)
        s=(A[(c-1)]+A[c])/2
        print('偶数时中位数为',s)
fun(23,25,52,12,58,54)
# ==自定义函数==
 def fun(*args):
 A=[]
    for i in args:
        A.append(i)
    A.sort()
    if len(A) % 2 == 1:
        m = A[len(A) // 2]
        print(m)
    if len(A)%2==0:
        c=(A[(len(A)//2)-1]+A[len(A)//2])/2
        print(c)
fun(23,25,52,12,58,54)
def func(data):
    data.sort()
    if len(data)%2==1:

        return(data[int(len(data)/2-0.5)])
    else:
        return((data[int(len(data)/2-1)]+data[int(len(data)/2)])/2)
##3,写函数,检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回给调用者
def func(*args):
    A = []
    for i in args:
        A.append(i)
    if len(A)>2:
        print(A[0:2])
        del A[0:2]
    return A
func(25,52,65,45)
def funcc(*args):
    A = []
    for i in args:
        A.append(i)
    if len(A)>2:
        del A[2:]
    return A
funcc(25,52,65,45)

def func(data):
    if len(data)>2:
        return data[0:2]
    else:
        return data
func([50,45,58,41])
a=50
a=int(input('请输入一个属'))
if a>50:
    print('True')
elif a<50:
    print('False')
else:
    print(a)

s=2
if 0<s and s<=60:
    print('BUJIGE')
elif 60<s<=75:
    print('jige')
elif 75<s<=85:
    print('lianghap')
else:
    print('youxiu')
a=input("从键盘接受一个数字")
if a=='nan':
    print("nan")
else:
    print("nv")

list1=[12, 25, 47, 69, 36, 25, 52]
a=list1[3]
if a>30:
    list1.remove(a)
    print(list1)
else:
    print(a)
##t1 = ['Google', 'Runoob','shsj', '2000'],如果t1位置2的元素长度大于3的话,就输入这个元素,如果小于的话,就删除此元素
t1 = ['Google', 'Runoob','shsj', '2000']
a=t1[2]
if len(a)>3:
    print(a)
else:
    t1.remove(a)
##tup1=('Google', 'Runoob', 'student', '2000'),如果tup1位置2的元素的长度大于4,则将此元素添加到列表A里
tup1=('Google', 'Runoob', 'student', '2000')
A=[]
i=tup1[2]
if len(i)>4:
  A.append(i)
  print(A)
else:
    print(i)
##输入用户名和密码,如果用户名和密码都正确的话,则输出‘登陆成功’,否则输出‘登录失败’
a=('huaiqii')
b=(123456)
if a==('huaiqiyi') and b==(123456):
    print('登陆成功')
else:
    print('登陆失败')
a=input("请输入用户名")
b=int(input("请输入密码"))
if a==('huaiqiyi') and b==(123456):
    print('登陆成功')
else:
    print('登陆失败')
##取出1-100之间所有的能被7整除的数,并求和
sum=0
for i in range(1,101):
    if i%7==0:
        sum=sum+i
        print(sum)

##求1-100的和
sum=0
for i in range(1,101):
    sum=sum+i
print(sum)

a=[[[56],[67,45,34]],[[34,12,56],[45,34],[12,45,67]]]    ##
sum=0
for i in a:
    for b in i:
        for c in b:
            sum=sum+c
            print(sum)

class1 = {'一班':[90,80,66,75,99,55,76,78,98,46,90],'二班':[75,98,100,85,77, 45,92,66,56,80,57],',三班':[45,89,77,67,65,100,62,75,64,88,99]}
a=[]#接收不及格
b=[]#接受及格
c=[]#接受良好
d=[]#j接受优秀
e=[]#接受满分
for i in class1.values():
    for j in i:
        if j<60:
            a.append(j)
        elif j>=60 and j<=75:
             b.append(j)
         elif j>=75 and j<=85:
             c.append(j)
        elif j>=85 and j<=99:
            d.append(j)
        else:
             e.append(j)

dic1={'不及格的分数':a,'及格的分数':b,'良好的分数':c,'优秀的分数':d,'满分':e}
print(dic1)
tup = ({'a':[1,2,3,4],'b':[5,7,9,101]},
       {'c':[21,23,35],'d':[24,15,19]})

##在100以内可以被3整除的数
for i in range(0,100):
    if i%3!=0:
        print(i)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值