python实践--2

python实践–2

1.请改正下面程序中存在的错误:

def StudentInfo(country='China', chineselevel='A', name):
   print('%s,%s,%s'%(name,country,chineselevel))
StudentInfo(country='America', chineselevel='B', name='John')

错误改正:
name为非默认参数,需要放在默认参数的前面,以免引起歧义,上方的代码会报错
例如:StudentInfo(‘China’,‘Jonh’),导致第三个参数无赋值,所以把缺省参数放在后面

def StudentInfo(name, country='China', chineselevel='A'):
    print('%s,%s,%s' % (name, country, chineselevel))


StudentInfo(country='America', chineselevel='B', name='John')

注:在python中可以使用’  '来表示字符串

2.请改正下面程序中存在的错误:

def StudentInfo(name, **args):
    print(name,args)
StudentInfo('Li Xiaoming', 'China', 'A')

知识点:对于不定长参数的定义:1.*args方式,则使用位置参数;
      2.**args方式,则使用关键字参数。
改正方式1:

def StudentInfo(name, **args):
    print(name, args)


StudentInfo('Li Xiaoming', country='China', chinese_level='A')

改正方式2:

def StudentInfo(name, *args):
    print(name, args)


StudentInfo('Li Xiaoming', 'China', 'A')

3.请改正下面程序中存在的错误:

def Sum(a,b,c):
    print(a+b+c)
t=(1,2,3)
Sum(**t)

改正如下:

def Sum(a,b,c):
    print(a+b+c)
t=(1,2,3)
Sum(*t)

4.请改正下面程序中存在的错误:

def f1():
    print(x)
def f2():
    x=50 #将全局变量x的值修改为50
    print(x)
x=10
f2()
f1()

改正:
知识点:global关键字

def f1():
    print(x)
def f2():
    global x	#global关键字
    x=50 #将全局变量x的值修改为50
    print(x)
x=10
f2()
f1()

5.请改正下面程序中存在的错误:

def deco(func):
    def inner():
        print('deco begin')
        func()
        print('deco end')
    return inner
@deco
def add(a,b):
    print(a+b)
if __name__=='__main__':
    add(3,5)

改正如下:
知识点:装饰器

def deco(func):
    def inner(x,y):	#此处的参数与参数传来的func实参的参数个数一致
        print('deco begin')
        func(x,y)	
        print('deco end')
    return inner
@deco
def add(a,b):
    print(a+b)
if __name__=='__main__':
    add(3,5)

下面是不限制参数个数的方式:

def deco(func):
    def inner(*args,**kwargs):
        print('deco begin')
        func(*args,**kwargs)
        print('deco end')
    return inner
@deco
def add(a,b,c,d):
    print(a+b+c+d)
if __name__=='__main__':
    add(3,4,5,6)

6.编写程序实现以下功能:输入若干整数(输入0结束),每个整数输入完毕后,马上输出该整数是否为素数。要求判断一个整数是否为素数的功能用一个函数实现。

要求:输入整数小于2则输出Invalid,输入整数是素数则输出Yes,输入整数不是素数则输出No

实现如下:

def is_prime(x):
    i = 2
    flag = True
    while i <= x ** 0.5:
        if x % i == 0:
            return 0
        i += 1
    return 1


if __name__ == "__main__":
    a = ""
    # while not a.endswith(" 0") |a.startswith("0"):
    while 1:
        a = input()
        b = int(a)
        if b == 0:
            break
        elif b < 2:
            print("invalid")
        elif is_prime(b):
            print("Yes")
        else:
            print("No")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值