1、
max = 0
count = 0
while True:
num = int(input("Enter a number (0: for end of input): "))
if num == 0:
break
if num > max:
max = num
count = 1
elif num == max:
count += 1
print("The largest number is ",max)
print("The occurrence count of the largest number is ",count)
测试:
C:\Users\WMUMU\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/WMUMU/PycharmProjects/pythonProject/python作业/1.py
Enter a number (0: for end of input): 3
Enter a number (0: for end of input): 5
Enter a number (0: for end of input): 2
Enter a number (0: for end of input): 5
Enter a number (0: for end of input): 5
Enter a number (0: for end of input): 5
Enter a number (0: for end of input): 0
The largest number is 5
The occurrence count of the largest number is 4
进程已结束,退出代码0
2、
# 方法一:
import random
sum = 0
for i in range (0, 1000001):
x = random.random() * random.choice([-1,1])
y = random.random() * random.choice([-1,1])
if x<= 0 or ( x >= 0 and y >= 0 and (y / (1 - x) >= 1)):
sum += 1
a = sum / 1000000
print("1000000个随机点落在奇数区域的概率是%.12f"%a)
# 方法二:
import random
total = 1000000
count = 0
for i in range(0,total):
x = random.random() * 2 - 1 # random.random() 产生[0,1)之间任意一个小数
y = random.random() * 2 - 1 # random.random() 产生[0,1)之间任意一个小数
if -1 <= x <= 0 and -1 <= y <= 1:
count += 1
elif 0 <= x <= 1 and 0 <= y <= 1 and y / (1-x) <= 1:
count += 1
print("1000000个随机点落在奇数区域的概率是%.12f"%(count / total))
测试结果:
3、
count = 0
for y in range(2001, 2100 + 1):
if y % 400 == 0 or y % 4 == 0 and y % 100 != 0:
print(y, end=" ")
count += 1
if count % 10 == 0:
print()
测试结果:
4、
代码编写:
# 定义decToHex()函数实现十进制转为十六进制
# 提示用户输入一个十进制整数
number = int(input("Enter a number:"))
def decToHex(number):
hexStr = ""
while number != 0:
temp = number % 16
if temp < 10:
hexStr = str(temp) + hexStr
else:
hexStr = chr(55 + temp) + hexStr
number //= 16 # number = number // 16
return hexStr
hexStr = decToHex(number)
print("十进制数%d,对应的十六进制数是%s"%(number,hexStr))
计算机程序中经常会遇到进制转换,以下定义三个函数实现十进制转换成二进制、八进制、十进制的功能:
decToBin()函数实现十进制转化二进制;
定义decToOct()函数实现十进制转换八进制;
decToHex()实现十进制转换十六进制。
测试结果:
5、
number = int(input("Enter a number:"))
"""
123456 % 10 -> 6
12345 % 10 -> 5
1234
...
1 % 10 -> 1
0
"""
def sumDigits(n):
sum = 0
while n != 0:
sum += n % 10
n = n // 10
return sum
print(sumDigits(number))
测试结果:
6、
#Return the reversal of an integer, e.g. reverse(456) returns
#654
#def reverse(rumber):
#Return true if number is a palindrome
#def isPalindrome (number):
number = int(input("Enter a number:"))
def isPalindrome(number):
revNum = reverse(number)
return number == revNum
def reverse(number):
revNum = 0
while number != 0:
revNum = revNum * 10 + number % 10
number //= 10
return revNum
print(isPalindrome(number))
测试结果:
我们先随便输个数字,发现结果显示False,然后我们再次输入125818521并运行,得出如下结果:
7、
代码编写:
number = int(input("Enter a number:"))
def reverse(number):
revNum = 0
while number != 0:
revNum = revNum * 10 + number % 10
number //= 10
return revNum
print(reverse(number))
测试结果:
8、
代码编写:
# Converts from Celsius to Fahrenheit
def celsiusToFahrenheit(celsius):
Fahrenheit = (9 / 5) * celsius +32
return Fahrenheit
# Converts from Fahrenheit to Celsius
def fahrenheitToCelsius(fahrenheit):
celsius = (5 / 9) * (fahrenheit - 32)
return celsius
print("Celsius\t\tFahrenheit\t\tFahrenheit\tCelsius")
i = 40
for j in range(120, 20, -10):
print(i,end = "\t\t\t")
print("%.1f"%(celsiusToFahrenheit(i)),end ="\t\t\t")
print(j, end="\t\t\t")
print("%.2f"%(fahrenheitToCelsius(j)))
i -= 1
if i == 30:
break
测试结果:
9、
代码编写:
测试结果:
10、
代码编写:
测试结果:
11、
12、
(1)问题分析:
只要理解了梅森素数的定义,该问题并不难求解。已知要求解的问题是找出指数p<=31的所有梅森素数。根据梅森素数的定义,我们可以先求出p<=31的所有梅森数,再逐一判断这些数是否为素数。如果是素数,则表示该数为梅森素数,打印输出即可,否则不是梅森素数。
(2)代码编写:
测试结果: