python复习

1.编写程序,在D盘的目录下创建一个文本文件test.txt,并向其中写入字符串hello world

fp = open(r"D:\test.txt","a+")
print("hello world",file=fp)
fp.close()

2.写出下面代码的优化版本,提高运行效率

x = list(range(500))
for item in x:
    t=5**5
    print(item+t)

x = list(range(500))
t=5**5
for item in x:
    print(item+t)

3.编写程序,生成一个包含20个随机整数的列表,然后对其中的偶数下标的元素进行降序排列,奇数下标的元素不变(使用切片)

import random
x = [random.randint(0,100) for i in range(20)]
print(x)
y = x[::2]
print(y)
y.sort(reverse=True)
print(y)
x[::2] = y
print(x)

在这里插入图片描述
4.写出下面代码的执行结果

def Join(List,sep=None):
    return (sep or ",").join(List)

print(Join(["a","sd","apple"]))
print(Join(["a","sd","apple"],sep=":"))

在这里插入图片描述
5.写出下面代码的运行结果


def Sum(a,b=3,c=5):
    return sum([a,b,c])
print(Sum(a=8,c=2))
print(Sum(8))
print(Sum(8,2))

在这里插入图片描述
6.写出下面 代码的运行结果


def Summ(*p):
    return sum(p)

print(Summ(8))
print(Summ(8,3,5))
print(Summ(8,2,10))
#8
#16
#20

7.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO

import math
def isPrime(v):
    n=int(math.sqrt(v)+1)
    for i in range(2,n):
        if v%i == 0:
            return "NO"
        else:
            return "YES"
print(isPrime(6))

8.编写函数,模拟python内置函数sorted

def Sorted(v):
    t=v[::]
    r=[]
    while t:
        tt=min(t)
        r.append(tt)
        t.remove(tt)
    return r

9.编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列

import random
x = [random.randint(0,100) for i in range(20)]
y = x[:10]
y.sort()
x[:10] = y
y = x[10:]
y.sort(reverse=True)
x[10:] = y
print(x)

10.编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年,如果年份能被400整除则为闰年,如果年份能被4整除但是不能被100整除也为闰年

x = input("请输入一个四位数字:")
x = eval(x)
if x%400==0 or (x%4==0 and x%100 !=0):
    print("YES")
else:
    print("NO")

11.编写程序实现分段函数计算

xy
x < 0 0
0< = x < 5 x
5 < = x < 10 3x-5
10 < = x < 20 0.5x-2
20< = x 0
x = input("请输入x的值:")
x = eval(x)
if x<0 :
    print(0)
elif 5>x>=0:
    print(x)
elif 5<=x<10:
    print(3*x-5)
elif 10<=x<20:
    print(0.5*x-2)
elif 20<=x:
    print(0)

13.下面的代码功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现的频率

import random
x = [random.randint(1,20) for i in range(50)]
r = dict()
for i in x:
    r[i] = r.get(i,0)+1

for k,v in r.items():
    print(k,v)

在这里插入图片描述
14.假设有Pyhon程序文件demo.py代码如下

#14.假设有Pyhon程序文件demo.py代码如下、
def main():
    if __name__ == "__main__":
        print(1)
    else:
        print(2)
main()
#作为程序文件直接运行是输出的结果为1,作为模块导入时得到的结果时是(1,2)

15下面程序的执行结果是1

s = 0
for i in range(0,101):
    s += i
else:
    print(1)

16下面程序的执行结果是1275

s = 0
for i in range(1,101):
    s+=i
    if i == 50:
        print(s)
        break
else:
    print(1)

17下面的程序是否能 正常执行,若不能,请解释原因,若能,请分析其执行结果

from random import randint

result = set()
while True:
    result.add(randint(1,10))
    if len(result)==20:
        break
print(result)
# 无法正确执行,因为该程序的功能是从1到10之前选择不同的随机整数,而该区间并没有这么多的整数,所以程序死循环

无法正确执行,因为该程序的功能是从1到10之前选择不同的随机整数,而该区间并没有这么多的整数,所以程序死循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值