请稍候,加载中....

Python语法二级(一)

1. 编写一个程序,查找2000~3200之间能被7整除,且不是5的倍数的数,将结果打印出来:

代码示例:

lst=[]
for i in range(2000, 3201):
    if (i % 7 == 0) and (i % 5 != 0):
        lst.append(str(i))
print(','.join(lst))

讲解:
是否被整除使用取模运算,结果为0即为整除
通过join方法可以将一个列表的所有元素通过指定的间隔符拼接起来


2. 使用递归编写一个程序,可以计算给定的一个数的阶乘,输入3,返回6(1*2*3),输入8,返回40320.

代码示例:

def fact(x):
    if x == 0:
         return 1
    return x * fact(x-1)
x = int(input())
print(fact(x))

讲解:

递归函数需要满足递归条件与结束条件,当x==0时,递归结束


3.使⽤给定的整数n,编写⼀个程序,要求⽣成包含键值对“i: i*i”的字典,该字典为1到n之间的整数(包含这两个数)>运⾏程序输出字典.


假设在程序中输⼊以下数字:
1 2 3 4 ....8

则输出应为:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

代码示例:

n = int(input())
d = dict()
for i in range(1, n+1):
    d[i] = i*i

print(d)

讲解:

range生成器可以生成1~n+1之间的数列,包含1,但是不包含n+1,所以生成的数列为1~n


 

4. 编写⼀个程序,要求该程序从控制台接收⼀个以逗号(英⽂逗号)分隔的数字序列,并⽣成⼀个列表和⼀个包含每个数字的元组。

   假设在程序中输⼊以下数字:
      34,67,55,33,12,98
   则输出应为:
     ['34', '67', '55', '33', '12', '98'] ('34', '67', '55', '33', '12', '98')

代码示例:

values = input()
1st = values.split(",")
t = tuple(1st)
print(lst)
print(t)

讲解:

字符串可以通过split方法分割成列表,元组可以直接通过tuple函数转换list类型得到


 

5. 定义⼀个⾄少有两种⽅法的类: getString:从控制台输⼊获取字符串 printString:以⼤写形式输出字符串。

代码示例

class InputOutString:
    def __init__(self):
        self.s = ""

    def getString(self):
        self.s = input()

    def printString(self):
        print self.s.upper()

strObj = InputOutString()
strObj.getString()
strObj.pringString()

讲解

类是一系列函数与变量的封装,成为类的属性,普通的类方法需要经过类实例才能调用,类方法与静态方法直接通过类调用

 


Python学习手册-