1.判断 变量名是否合法?
变量名可以由字母,数字或者下划线组成;
变量名只能以字母或者下划线开头;
思想:1. 判断变量名的第一个元素是否为字母或者下划线; s[0]
2. 如果第一个元素符合条件, 判断除了第一个元素的其他元素;s[1:]
while True:
s = raw_input('变量名:')
if s == 'exit':
print '欢迎再次使用'
break
if s[0].isalpha() or s[0] == '_':
for i in s[1:]:
if not (i.isalnum() or i == '_'):
print '%s变量名不合法 ' % s
break
else:
print '%s 变量名合法' % s
else:
print '%s变量名不合法' % s
2.回文数
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
num = raw_input('Num:')
if num == num[::-1]:
print '这是一个回文数'
else:
print '这不是一个回文数'
3.句子反转
- 题目描述:给定一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前>后没有空格。
比如: (1) “hello xiao mi”-> “mi xiao hello”
4.输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开。
如输入: This is a c++ program. 输出:There are 5 words in the line.
a = raw_input('请输入一行字符:')
b = a.split()
c = len(b)
print 'There are %d words in the line' % c
5.给出一个字符串,在程序中赋初值为一个句子,例如"he threw three free throws",
自编函数完成下面的功能:
1)求出字符列表中字符的个数(对于例句,输出为26)
a = raw_input('请输入一行字符:')
b = len(a)
print '%d' % b
6.输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,
则删除之后的第一个字符串变成”Thy r stdnts.”
6.输出菱形
7.给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤纪录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤纪录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
s = raw_input()
if s.count('A') <= 1 and s.count('LLL') ==0:
print True
else:
print False
# print s.count('A') <=1 and s.count('LLL') ==0
8. 设计一个程序,帮助小学生练习10以内的加法
详情:
- 随机生成加法题目;
- 学生查看题目并输入答案;
- 判别学生答题是否正确?
- 退出时, 统计学生答题总数,正确数量及正确率(保留两位小数点);
import random
sum=0
right=0
false=0
while True:
a = random.randint(1,10)
b = random.randint(1,10)
print '%d+%d'%(a,b)
sum +=1
d=(raw_input('观察题目,并做答:'))
if d =='exit':
break
elif int(d) == a+b:
print '答案正确'
right += 1
else:
print'答案不正确'
false += 1
zhengquelv = float(right)/float(sum) #注意:将变量转变为float型,否则正确率一直显示为0
print '答题总数为%d'%sum
print '正确数量是%d'%right
print '答题正确率是%.2f%%'%(zhengquelv * 100)
9. 小学生算术能力测试系统:
设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:
提供10道加、减、乘或除四种基本算术运算的题目;
练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。
import random
op=['+','-','*','/']
count=0
for i in range(1,5):
s=random.choice(op)
if s == '+':
num1=random.randint(0,101)
num2=random.randint(0,101)
result=num1+num2
print 'the %d question:%d +%d'%(i,num1,num2),
result1=int(raw_input('='))
if result==result1:
count+=1
elif s=='-':
num1=random.randint(0,101)
num2=random.randint(0,101)
maxnum=num1 if num1>num2 else num2
minnum=num1 if num1<num2 else num2
result=maxnum-minnum
print 'the %d question:%d -%d' %(i, num1, num2),
result1 = int(raw_input('='))
if result==result1:
count+=1
elif s=='*':
num1 = random.randint(0,11)
num2 = random.randint(0,11)
result = num1*num2
print 'the %d question:%d *%d' % (i, num1, num2),
result1 = int(raw_input('='))
if result == result1:
count += 1
else:
num1 = random.randint(0, 11)
num2 = random.randint(1, 11)
result = int(num1 / num2)
print 'the %d question:%d /%d' % (i, num1, num2),
result1 = int(raw_input('='))
if result == result1:
count += 1
count=float(count)
count=float(count)
print count
percent=(count/10)*100
print ('right percent=%.2ff%%'%(percent))
10. 算法之指定范围内判断
1). 若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。判断正整数n是否为完全数。
n=int(raw_input('请输入一个整数:'))
list=[]
for i in range(1,n):
if n%i==0:
list.append(i)
if sum(list)==n:
print '%d是一个完全数'%n
else:
print '%d不是一个完全数'%n
2)求指定范围内的完全数(10000以内)
for n in range(1,10000):
list=[]
for a in range(1,n):
if n%a==0:
list.append(a)
if sum(list)==n:
print n
3). 输入一个正整数,判断其是否为一个素数
n=int(raw_input('请输入一个正整数:'))
for i in range(2,n):
if n%i==0:
print '%d不是素数'%n
break
else:
print '%d是素数'%n