字符串练习

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值