zoukankan      html  css  js  c++  java
  • Python之三元运算、集合、函数

    一、三元运算符
    三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
    格式:[on_true] if [expression] else [on_false]
    res = 值1 if 条件 else 值2
    1.举例说明:
    a =1
    b = 2
    c= a if a>1 else b #如果a大于1的话,c=a,否则c=b
     
    如果不用三元运算符,就用if-else条件判断,如下:
    a = 1
    b = 2
    if a >1:
    c = a
    else:
    c = b
     
    2.三元运算符也可以用在列表和字典中
    例:1-10的数字,打印出其中的偶数
    三元运算:
    ss = [i for i in range(1,11) if i%2==0 ] #循环1-11间的值(不包括11),如果值能被2整除(即取偶数),就写到ss这个list中
    print(ss) #最终打印结果 [2, 4, 6, 8, 10]
     
    if-else条件判断
    s = []
    for i in range(1,11):
    if i %2==0:
    s.append(i)
    print(s)
     
     
    二、集合
    集合:set持有一系列元素,和list很像,也是一种数据类型,但是set的元素没有重复,而且是无序的
    特点:set不包含重复的元素(天生去重)且无序
     
    2.集合的定义
    a.定义一个列表,通过强制转换来定义集合
    nums = [1,1,2,3,5,6,77,8]
    num_set = set(nums)
    b.直接定义
    num_set1={1,2,3,3,4}
    集合不能通过下标来访问元素
     
    3.循环遍历set
    s = set(['Adam', 'Lisa', 'Bart'])
    for name in s:
    print (name)
    结果:
    Lisa
    Bart
    Adam
     
    4.添加元素
    s = {1,2,3}
    s.add(4)
    print(s)#结果 {1, 2, 3, 4}
     
    s.update([333,444,333])
    s.update({56,78,999})
     
    5.删除元素
    s.remove(333) #删除元素,如果元素不存在就会报错
    s.pop() #删除一个随机的元素,并返回删除的元素
    s.discare(111) #如果删除的元素存在,删除,不存在不做处理
     
     
    三、函数
    1.什么是函数?
    定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
     
    2.使用函数的好处
    a.简化代码
    b.提高代码的复用性
    c.代码可扩展
     
    3.python中函数定义
    def functionname( parameters ): function_suite return [expression]
    说明:def为关键字,后面为函数名,函数名不能重复,括号中内容为参数,根据实际情况,定义你需要的参数个数
    function_suite 为 函数体
    return 为返回值 如果不写return这一行的话,默认返回为None
     
    4.函数调用
    def hello():
    print('hello!')
    hello() #函数调用,函数调用的方式为,函数名后跟括号
     
    5.形参和实参
    函数在调用的时候,可以传入参数,有形参和实参
    形参:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。
     
    实参:实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。函数调用结束返回主调用函数后则不能再使用该形参变量。
     
    6.函数的参数类型
    函数的四种参数类型:位置参数、默认参数、不定长参数、关键字参数
    位置参数:
    位置参数,就是按照参数的位置来进行传参
    例:
    def reg(name,age):
    print('hello %s,age is %s' %(name,age))#name,age是必填参数,位置参数
    reg('hhf',27)
    说明:有几个位置参数在调用的时候就要传几个,否则就会报错
    如果有多个位置参数,但却记不住参数的位置,可以使用位置参数的名字来指定调用
    具体调用为reg(name='huihui',age=25),这种调用方式叫做关键字传参
     
    默认参数:
    默认参数就是在定义形参的时候,给函数默认赋一个值
    默认参数不是必填的,如果给默认参数传值的话,它就会使用你传入的值。如果使用默认值参数的话,必须放在位置参数后面定义
     
    例:
    def reg(name,age,sex='男'):
    print('hello %s,age is %s' %(name,age))#name,age是必填参数,位置参数 #sex是默认值参数,不是必填参数
    reg('hhf',27)#不传sex,sex使用默认值参数,sex='男'
    reg('huihui',28,'女') #给sex传值,sex='女'
     
    非固定参数:
    上面的两种位置参数和默认参数都是参数个数是固定的
    如果有一个函数,参数不是固定的,也不知道函数会扩展成啥样,可能参数越来越多,这个时候如果使用固定的参数,后面程序就不好扩展,这时候就可以用非固定参数了
    非固定参数有两种,一种是可变参数,一种是关键字参数
    可变参数:
    可变参数用*来接收,后面想传多少个参数就传多少个,如果位置参数、默认值参数、可变参数一起使用的的话,可变参数必须在位置参数和默认值参数后面。可变参数也是非必传的。
    例:
    def post(*args):
    print(args)
    post('001','denglu','http://www.baidu.com',post,a=1)
    post()
    说明:可变参数,也叫参数组,也不是必填的,它接收到的是一个元组
    它把调用函数时传进去的每一个参数到一个元组里
     
    关键字参数:
    关键字参数使用**来接收,后面的参数也是不固定的,想写多少个写多少个,当然也可以和上面的几种一起来使用,如果要一起使用的话,关键字参数必须在最后面。
    使用关键字参数的话,调用的时候必须使用关键字传参,关键字参数也是非必传的
    例:
    def kw(**kwargs):
    print(kwargs)
    kw()
    kw(age=18,name='aaa')
    d={'age':18,'name':'aaa'}
    kw(**d)
    说明:关键字参数,接收的是一个字典,调用得用xx=11,也不是必填的
    传入字典调用的时候就得写**{'age':18,'name':'aaa'}
     
    其它例子:
    def other2(name,country='china',*args,**kwargs):
    print(name)
    print(country)
    print(args)
    print(kwargs)
    other2('hhf')
    other2('niuhui','beijing','python','changping',user='niu')
    说明:如果必填参数,默认值参数,可变参数和关键字参数要一起使用的话,
    必须参照必填参数、默认值参数、可变参数和关键字参数的顺序接收,否则会报错
     
    def write(filename,model,ending,user,os,money,other):
    print(filename)
    print(model)
    print(ending)
    print(user)
    print(os)
    print(money)
    print(other)
     
    write(os='Windows',user='wubing',model='w',filename='a.tx',ending='utf8',money=9999,other='xxx')
    -#write(os='windows','a.txt') #位置参数调用参数必须在关键字调用前,否则报错
    write('a.txt','w','gbk2312','hhf',os='windwos',money=9999,other='xxx')
     
    7.函数返回值
    def plus(a,b):
    c=a+b
    return c
    说明:
    a函数碰到return,立即结束这个函数
    b调用完函数之后,返回计算结果
    c函数可以没有返回值,如果没有返回值的话,默认返回None,如果这个函数的处理
    结果我们需要在别的地方用到,就得给函数一个返回值
    如果函数return多个值的话,那么它就会把多个值放到一个元组里面去
     
    score1 = 50
    score2 = 90
    def echo():
    return score1,score2
     
    8.局部变量和全局变量
    局部变量:在局部内生效,出了这个变量的作用域,这个变量就失效了
    全局变量:在整个程序里面都生效的,在程序最前面定义的都是全局变量
    -# score3 = [1,2,3,4,5]
    -# score3 = {"id":1}
    score3 = 100
    def my_open():
    fw = open('a.txt','a+')
    fw.seek(0)
    print('score3',score3)
    d={'id':2}
    d['price']=99
    说明:
    a.在函数里面定义变量叫局部变量,它只能在函数里面用,出了该函数外,就不能使用了
    b.在函数外面定义的变量,是全局变量,在函数内也可以使用
    c 如果想在函数里面修改全局变量的值,那么要先用global关键字声明
    要修改全局变量是int、string的话,必须得写global
    如果是字典和list的话,要修改的话,不能加global
     
     
     
  • 相关阅读:
    第一章 初识shiro
    LDAP概念
    css定位
    css随笔1
    自己动手实现信息检索系统
    IntelliJ IDEA和pycharm注册码
    俄罗斯农夫算法
    [NOIP2013]转圈游戏
    [codevs1287]矩阵乘法
    [洛谷1314]无序字母对
  • 原文地址:https://www.cnblogs.com/hhfzj/p/6978092.html
Copyright © 2011-2022 走看看