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)
def Join(List,sep=None):
return (sep or ",").join(List)
print(Join(["a","sd","apple"]))
print(Join(["a","sd","apple"],sep=":"))
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))
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.编写程序实现分段函数计算
x | y |
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代码如下、
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之前选择不同的随机整数,而该区间并没有这么多的整数,所以程序死循环