- 编写程序,输入三个整数,按照从小到大的顺序进行排序输出。
x=input("x=")
y=input("y=")
z=input("z=")
if x>=y:
x,y=y,x
if x>=z:
x,z=z,x
if y>=z:
y,z=z,y
print(x,y,z)
- 编写程序,输入一个月份,输出该月的天数。(不考虑闰年情况)。
month=int(input("请输入一个月份(1-12):\n"))
if 0<month<13:
monthDay=[31,28,31,20,31,30,31,31,30,31,30,31]
if month==2:
year=int(input("请输入一个年份:"))
if year%400==0 or year%4==0 and year%100!=0:
print("二月有29天")
else:
print("二月有28天")
else:
print(month,"月有",monthDay[month-1],"天")
else:
print("请输入正确的月份")
3.编写程序,输入一个月份,输出该月份所属的季节。
month=int(input("请输入一个月份(1-12):\n"))
if 0<month<13:
if 3<=month<=5:
print("这个月是春季")
if 6 <= month <= 8:
print("这个月是夏季")
if 9 <= month <= 11:
print("这个月是秋季")
if 1 <= month <= 2 or month==12:
print("这个月是冬季")
else:
print("请输入正确的月份")
4.编写程序,输入两个整数m和n,判断m和n的符号情况,如果m和n的符号相同(都是正数或都是负数)返回1,如果一正一负返回-1 ,如果其中1个为0或者两个都为0返回0。
i=int(input("i="))
j=int(input("j="))
if i*j==0:
print("0")
if i*j<0:
print("-1")
if i*j>0:
print("1")
5.编写程序,使用循环语句求1+2+3+…+100的和。
i=0
j=0
while i<100:
i+=1
j+=i
print(j)
6.编写程序,输入一个正整数n,使用循环语句求n!。
k=int(input("请输入一个数:\n"))
i=0
j=0
while i<k:
i+=1
j+=i
print(j)
7.编写程序,输出1949~2023之间所有的闰年。
a=1949
while 1949<=a<2023:
a+=1
if a%400==0 or a%4==0 and a%100!=0:
print("闰年有:\n",a)
8.编写程序,输入一个包含若干个整数的列表ls,输出其中所有负数的和。
ls = input("请输入一个包含若干个整数的列表,用空格分隔:").split()
sum = 0
for num in ls:
if int(num) < 0:
sum += int(num)
print("所有负数的和为:", sum)
9.编写程序,输入一个包含若干整数的列表lst,输出其中最大的奇数。
lst = input("请输入一个包含若干整数的列表,以空格分隔:").split() # 将输入的字符串转换为列表
max_odd = None # 定义最大奇数变量,初始值为None
for num in lst:
if int(num) % 2 == 1: # 判断是否为奇数
if max_odd is None or int(num) > max_odd: # 如果当前数是奇数并且大于之前的最大奇数,则更新最大奇数
max_odd = int(num)
if max_odd is None: # 如果列表中没有奇数,则输出提示信息
print("列表中没有奇数")
else:
print("最大的奇数为:", max_odd)
10.编写程序,输入一个包含若干整数的列表lst,首先计算其中的最大值,然后返回该最大值在列表lst中所有出现位置组成的新列表。例如,lst为[1,2,3,3]时返回[2,3]。
def find_max_positions(lst):
max_val = max(lst) # 计算出列表中的最大值
positions = [i for i, val in enumerate(lst) if val == max_val] # 计算最大值在列表中的所有出现位置
#enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
return positions
lst = [1, 2, 3, 3]
print(find_max_positions(lst))
11.编写程序,输入一个自然数num,输出num各位数字中最大的整数。
num = input("请输入一个自然数:")
max_num = 0
for i in num:
if int(i) > max_num:
max_num = int(i)
print("最大的整数是:", max_num)
12.编写程序,输入两个两个正整数m和n,求这m和n的最大公约数和最小公倍数。( 两个数的最小公倍数 = 两个数的乘积 / 两个数的最大公约数)。
m = int(input("请输入一个正整数m:"))
n = int(input("请输入一个正整数n:"))
# 求最大公约数
def gcd(x, y):
if x < y:
x, y = y, x
while y != 0:
r = x % y
x = y
y = r
return x
# 求最小公倍数
def lcm(x, y):
return x * y // gcd(x, y)
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
13.编写程序,输入一个正整数n,输出斐波那契数列中第n个数的值。
n = int(input("请输入一个正整数n:"))
fibonacci = [0, 1] # 斐波那契数列的前两个数为0和1
for i in range(2, n+1):
fibonacci.append(fibonacci[i-1] + fibonacci[i-2]) # 计算第i个数并添加到数列中
print("斐波那契数列中第", n, "个数的值为:", fibonacci[n])
14.编写程序,读取文本文件sample.txt的全部内容,以及一行中包含字符最多的首次出现在第几行。
with open(r'C:\Users\86184\Desktop\sample.txt','r',encoding="utf-8") as fp:
result = []
for line in fp:
print(line,end='')
result.append(len(line))
mx=max(result)
mn=min(result)
mxRow=result.index(mx)+1
mnRow=result.index(mn)+1
print("\n总行数是:",len(result))
print("包含字符最多的首次出现在第{0}行".format(mxRow))
print("包含字符最少的首次出现在第{0}行".format(mnRow))
15.读取一个Python源程序文件,去掉其中的空行和注释,然后写入另一个文件。
with open(r'C:\Users\86184\Desktop\sample.txt', 'r', encoding='utf-8') as fr, open(r'C:\Users\86184\Desktop\new.txt', 'w', encoding='utf-8') as fd:
for text in fr.readlines():
if text.split():
fd.write(text)
print('输出成功....')
16.编写函数IsPrime(n),判断正整数n是否为素数,要求n>1,并编写测试代码。
def IsPrime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
# 测试代码
print(IsPrime(2)) # True
print(IsPrime(3)) # True
17.编写函数IsPerfectNum(n),判断整数n是否为完数,要求n>1,并编写测试代码。完数是指一个数恰好等于它的因子之和,如6=1+2+3。
def IsPerfectNum(n):
if n <= 1:
return False
else:
sum = 1
for i in range(2, int(n**0.5)+1):
if n%i == 0:
sum += (i + (n//i)) # 将因子i与n/i同时加入求和中
return sum == n
print(IsPerfectNum(7))
18.编写程序,创建基类Person,其成员包括私有实例属性name、age和sex,实例方法setName()、setAge()和setSex()分别用来给实例属性赋值,实例方法show()用来输出3个实例属性的值; 创建派生类Employee,继承Person类,新增实例属性salary(工资),新增实例方法setSalary (),用来设置实例属性salary的值,重写基类的实例方法show(),输出所有实例属性的值。使用__init__()构造方法完成Person类和Employee类的对象初始化工作,并编写测试代码。
class Person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def setName(self, name):
self.name = name
def setAge(self, age):
self.age = age
def setSex(self, sex):
self.sex = sex
def show(self):
print(self.name, self.age ,self.sex)
class Employee(Person):
def __init__(self, name, age, sex, salary):
Person.__init__(self, name, age, sex)
self.salary = salary
def setSalary(self, salary):
self.salary = salary
def show(self):
print(self.name, self.age, self.sex, self.salary)
19. 编写程序,创建基类Vehicle,其成员包括实例属性brand(品牌)和color(颜色),实例方法showInfor()用来输出实例属性brand和color的值;创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),重写基类的实例方法showInfor()输出所有实例属性的值。利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码。
class Vehicle:
def __init__(self, brand, color):
self.brand = brand
self.color = color
def showInfor(self):
print("Brand:", self.brand)
print("Color:", self.color)
class Car(Vehicle):
def __init__(self, brand, color, seat):
super().__init__(brand, color)
self.seat = seat
def showInfor(self):
super().showInfor()
print("Seat:", self.seat)
20. 编写程序,创建基类Shape,其成员包括实例属性color(颜色),实例方法getColor()、setColor()分别用来获取和设置实例属性color的值;创建派生类Rectange,继承Shape类,新增实例属性length(长)和width(宽),新增实例方法getArea()用来获取长方形的面积。利用__init__()构造方法完成Shape和Rectange类的对象初始化工作,并编写测试代码。
class Shape:
def __init__(self, color):
self.color = color
def getColor(self):
return self.color
def setColor(self, color):
self.color = color
class Rectangle(Shape):
def __init__(self, color, length, width):
super().__init__(color)
self.length = length
self.width = width
def getArea(self):
return self.length * self.width