1、(数学方面:五角数)一个五角数被定义为n(3*n-1)/2,其中n = 1、2、…。所以,开始的数为5、12、22,编写一个函数返回五角数
编写一个程序来使用这个函数前100个五角数,每行显示10个
def getPentagonalNumber ( n) :
count = 0
for n in range ( 1 , n+ 1 ) :
count += 1
PentagonalNumber = int ( n* ( 3 * n - 1 ) / 2 )
print ( PentagonalNumber, end= " " )
if count % 10 == 0 :
print ( PentagonalNumber, end= "\n" )
if __name__ == '__main__' :
getPentagonalNumber( 100 )
2、(回文整数)编写下面带函数头的函数,使用函数reverse实现isPalindrome,如果一个数的反向数和它的正向数一样,则这个数为回文数。
def reverse ( number) :
a = number % 10
b = ( number % 100 ) // 10
c = number // 100
reverse_number = int ( str ( a) + str ( b) + str ( c) )
return reverse_number
def isPalindrome ( number) :
if reverse( number) == number:
print ( "%d 是回文整数" % number)
else :
print ( "%d 不是回文整数" % number)
if __name__ == '__main__' :
numberofDaysInAYear( 121 )
3、(一年的天数)使用下面的函数头编写一个函数,返回一年的天数
def leapYear ( year) :
if ( year % 4 == 0 and year % 100 != 0 ) or ( year % 400 == 0 ) :
return 366
else :
return 365
def numberofDaysInAYear ( a, b) :
for i in range ( a, b+ 1 ) :
print ( "%d 年有%d天" % ( i, leapYear( i) ) )
if __name__ == '__main__' :
numberofDaysInAYear( 2010 , 2020 )
4、(回文素数) 回文素数是指一个数即是素数又是回文数,编写程序显示前100个回文素数,每行显示10个数字,并且准确对齐
def isprime ( number) :
for i in range ( 2 , number) :
if number % i == 0 :
return False
else :
return True
def isPalindrome1 ( number) :
if reverse( number) == number:
return True
else :
return False
def Palindrome_primes ( number) :
count = 0
for i in range ( 1 , number+ 1 ) :
if isPalindrome1( i) and isprime( i) :
print ( i, end= " " )
count += 1
if count % 10 == 0 :
print ( "" , end= "\n" )
else :
continue
if __name__ == '__main__' :
Palindrome_primes( 1000 )
5、(财务应用程序:信号卡号的合法性) 信用卡号遵循下面的模式:一个信用卡号必须是13位到16位的整数,它的开头必须是: 4 是指Visa卡,5是指Master卡,37是指American Express卡,6是指Discover卡,采用Luhn检测或Mod 10检测
def sumOfDoubleEvenPlace ( number) :
str_number = str ( number)
sum_total = 0
sum0 = 0
sum1 = 0
for i in range ( 0 , len ( str_number) , 2 ) :
if int ( str_number[ i] * 2 ) < 10 :
sum0 += int ( str_number[ i] ) * 2
else :
a = int ( str_number[ i] ) * 2
b = a // 10
c = a % 10
sum0 += ( b + c)
for i in range ( 1 , len ( str_number) , 2 ) :
sum1 += int ( str_number[ i] )
sum_total = sum0 + sum1
print ( sum_total)
return sum_total
def isValid ( number) :
if sumOfDoubleEvenPlace( number) % 10 == 0 :
print ( "卡号 %d 是合法的" % number)
return True
else :
print ( "卡号%d不是合法的" % number)
return False
if __name__ == '__main__' :
isValid( 43542245234524524542435 )
6、(当前的日期和时间)调用time.time()返回从1970开始的毫秒数。编写程序显示日期和时间
import time
import datetime
def show_current_time ( ) :
time_zone = eval ( input ( "Enter the time zone:" ) )
current_time = time. time( )
total_senconds = int ( current_time)
current_sencond = total_senconds % 60
total_minutes = total_senconds // 60
current_minute = total_minutes % 60
total_hours = total_minutes // 60
current_hour = total_hours % 24
china_curent_hour = current_hour + time_zone
print ( "current time is " , china_curent_hour, ':' , current_minute, ":" ,
current_sencond, 'China' )
print ( datetime. datetime. now( ) )
if __name__ == '__main__' :
show_current_time( )