最近正好在辅导别个python,因此搜罗了一些比较适合新手编写的程序,会把程序和程序分析都放上来。
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,以及if elif else多个条件判断。
使用到的基本知识有循环,字符处理函数,输入输出,判断。
import string
s = raw_input('input a string:\n')
letters = 0
space = 0
digit = 0
others = 0
for c in s:
if c.isalpha(): #判断是否是英文字母
letters += 1
elif c.isspace(): #判断是否是空格
space += 1
elif c.isdigit(): #判断是否是数字
digit += 1
else:
others += 1
print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others)
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n不等于i,但n能被i整除,则应打印出i的值,并用n除以i的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被i整除,则用i+1作为i的值,重复执行第一步。
使用到的基本知识有循环,取余,输入输出,判断。
from sys import stdout
n = int(raw_input("input number:\n"))
print "n = %d" % n
for i in range(2,n + 1):
while n != i:
if n % i == 0:
stdout.write(str(i)) #stdout可以将结果写到一起之后再一起输出
stdout.write("*")
n = n / i
else:
break
print "%d" % n
题目:程序随机生成一个1-10之间的数字,用户输入猜测的数字,一共可以猜三轮。在每一轮中,如果猜对了,程序打印出“回答正确”以及在第几轮猜对的,如果用户没有猜对,告诉用户猜测的数字较之正确的数字是小了还是大了。
程序分析:
(1)加载random模板,生成一个随机整数。
(2)使用循环来控制猜的次数,在循环语句里面加入判断语句,根据用户猜数字的情况进行输出,使用break跳出循环。
import random
sNumber=random.randint(1,10) #在1到10间随机生成一个整数
print('I am thinking of a number between 1 and 10.')
for guessTaken in range(1,4): #猜三次
print('Take a guess.')
guess=int(input()) #输入猜测的数字
if guess < sNumber:
print('Your guess is too low.')
elif guess > sNumber:
print('Your guess is too high.')
else:
break
if guess == sNumber:
print('Good job! You guessed my number in '+ str(guessTaken)+ ' guesses!')