Exercise 1:
Number of daffodils:
''' Print the number of daffodils ''' import math #Define a function to find the power in a list and def pow3 (list): sum = 0 for i in list: sum += math.pow( int (i) , 3 ) return sum def flower (): #Method 1 finds the digits in turn for i in range ( 100 , 1000 ): a = i // 1000 #Take the highest digit b = i // 100 % 10 #Take the hundreds digit c = i // 10 % 10 #Take the tens digit d = i % 10 #Take the last digit list = [a , b , c , d] if pow3(list) == i: print ( ' The number of daffodils within 100-1000 : %d' %i) def flower2 (): #Method 2 : Convert the value to a list for i in range (100, 1000): list1 = list ( str (i)) if pow3(list1) == i: print ( ' Number of daffodils within 100-1000 : %d' %i) def flower3 (a , b): #limit the range (also Can be made into raw_input method) for i in range (a , b): list = [] #Division and remainder r = i while r: r,n = divmod(r,10) list.append(n) if pow3(list) == i: print ( ' The number of daffodils within 100-1000 is : %d' %i)
Exercise 2:
Bubble Sort
''' python: 冒泡排序 ''' class Sort(object): def __init__(self,lists): if isinstance(lists,list): # 或用type(lists).__name__ self.lists = lists elif isinstance(lists,str): self.lists = list(lists) else: print('请输入正确的排序序列') def bubble(self): # 冒泡排序 print('排序前: ',self.lists) length = len(self.lists) count = 0 for i in range(length): for j in range(i+1,length): if self.lists[i] > self.lists[j]: # 从小到大排序 count +=1 print('%d.前者比后者数值大,需交换数据'%count,self.lists[i],self.lists[j]) self.lists[i],self.lists[j] = self.lists[j],self.lists[i] print('交换后的序列是:',self.lists) print('冒泡排序后的序列是:',self.lists) return self.lists import random def random_int(length): # 随机生成length个1-100之间的整数 list = [] for i in range(length): list.append(random.randint(1,100)) return list
练习3:猜数
import random
def guess(number):numMax = 99
numMin = 1
count = 0
# num = input('Please enter an integer %d-%d number: '%(numMin,numMax))
while True:
num = input('Please Enter an integer %d-%d number: '%(numMin,numMax))
if num < number:
numMin = num
print("Please enter %d-%d"%(numMin,numMax))
count += 1
# continue
elif num > number:
numMax = num
print("Please input %d-%d"%(numMin,numMax))
count += 1
else:
print "Guess Right for %d times"%count
break
if __name__==' __main__':
a = random.randint (1.99)
guess(a)
from random import randint def guessNum () : num = randint ( 0 , 100 ) # random number to guess flag = False small_num = 0 big_num = 100 count = 0 while flag == False : raw_num = int ( input ( " input requires Guessed number : " )) if raw_num == num : count +=1 flag = True elif raw_num > num: count += 1 big_num = raw_num print("太大了,请输入%d - %d 的数字"%(small_num,raw_num)) elif raw_num < num: count += 1 small_num = raw_num print("太小了,请输入%d - %d 的数字"%(raw_num,big_num)) else: print('请输入0-100内的数字') print('count: %d'%count) guessNum()
练习4: 完全数
def isPerfect(num):
lists = [i for i in range(1,num) if not (num%i)]
if sum(lists) == num:
print '%d is perfect!'%num
for number in range(2,10000):
isPerfect(number)
练习5: 9*9乘法表
def print99():
for i in range(1,10):
for j in range(1,i+1):
print '%d*%d=%d '%(j,i,i*j),
print '\n'
print99()
python3
print('%d*%d=%d '%(j,i,i*j),end='')