python练手小程序之一

最近正好在辅导别个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!')

你可能感兴趣的:(python)