python基础语法练习

1. 输入学生姓名:
- 依次输入学生的三门科目成绩;
- 计算该学生的平均成绩,并打印;
- 平均成绩保留一位小数点;
- 计算该学生语文成绩占总成绩的百分之多少?  并打印。eg:78%

代码如下:

# _*_ coding:utf-8 _*_        # 文件编码转换,使PY文件识别中文
name = raw_input("学生姓名:")
chinese = float(raw_input("语文成绩:"))
math = float(raw_input("数学成绩:"))
english = float(raw_input("英语成绩:"))

# 总成绩
sumScore = chinese + math + english
# 求平均成绩
avgScore = sumScore / 3
# 求百分比, 0.33*100 = 33.33    ----- 33.33%
chinesePercent = (chinese / sumScore) * 100

print("%s 的平均成绩为%.2f" % (name, avgScore))
print("语文成绩占总成绩的%.2f%%" % (chinesePercent))

结果如下:

2. 判断闰年
用户输入年份year,判断是否为闰年?
year能被4整除但是不能被100整除,或者year能被400整除,那么就是闰年。

代码如下:

# _*_ coding:utf-8 _*_
print '判断闰年'
year = int(raw_input("Year:"))
if (year % 4 == 0 and year % 100 != 0) or ( year % 400 == 0):
   print("%s是闰年" %(year))
else:
   print("%s不是闰年" %(year))

结果如下:

3. 输入年、月,输出本月有多少天。合理选择分支语句完成设计任务。
    输入样例1:2004 2
    输出结果1:本月29天
    输入样例2:2010 4
    输出结果2:本月30天

代码如下:

# _*_ coding:utf-8 _*_
year = int(raw_input('请输入年份:'))
month = int(raw_input('请输入月份:'))

if (month == 2 or month == 4 or month == 6 or month == 9 or month == 11):
    if (month == 2):
        if (year % 4 == 0 and year % 100 != 0 or year % 400 == 0):
            print '本月29天'
        else:
            print '本月28天'
    else:
        print '本月30天'
else:
    print '本月31天'

结果如下:

4. 石头剪刀布猜拳游戏

   1.玩家出拳(石头/1剪刀/2布/3)
   2.电脑出拳
   3.比较胜负:
         石头胜剪刀
         剪刀胜布
         布胜石头

代码如下:

# _*_ coding:utf-8 _*_
import random   # 导入随机数模块

print ('猜拳游戏:石头/1 剪刀/2 布/3')
player = int(raw_input('玩家出拳:'))
computer = random.randint(1, 3)
print '电脑出拳为:%s' % computer
if ((player == 1 and computer == 2)
    or (player == 2 and computer == 3) \
            or (player == 3 and computer == 1)):
    print '玩家胜'
elif player == computer:
    print '平局'
else:
    print '玩家输'

结果如下:

补充:在python中,要使用随机数,首先需要导入随机数模块 -- ‘工具包’,导入模块后,可以直接在模块名称后面敲一个,然后Tab键补齐,会提示该模块中包含的所有函数
random.randint(a,b),返回[a b]之间的整数,包含a和b
eg: random.randint(12,20):生成随机数n:12 <= n <= 20
random.randint(20,20):结果永远是20
random.randint(20,12):结果会报错:下限必须小于上限

5. 计算0~100之间所有数字的累积求和
    python中的计数方法
    常见的计数方法有两种,可以分为
        自然计数法(从1开始) -- 更符合人类的习惯
        程序计数法(从0开始) -- 几乎所有的程序语言都选择从0开始计数
    因此,在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则循环的计数都从0开始。

代码如下:

# _*_ coding:utf-8 _*_
i = 0
result = 0
print '请输入一个整数:'
num = int(raw_input())
while i <= num:
    result += i
    # 处理计数器
    i += 1
print '0~%d之间的数字求和的结果是 %d' % (num, result)

结果如下:

补充:while的过程

while 条件:
  条件满足时,执行的语句1
  条件满足时,执行的语句2
  条件满足时,执行的语句3
  ......
  ......

6. while嵌套:打印九九乘法表

代码如下:

# _*_ coding:utf-8 _*_
row = 1
while row <= 9:
    col = 1
    while col <= row:
        print '%d * %d = %d\t' % (row, col, col * row),
        col += 1
    # print '%d' % row
    print ''
    row += 1

结果如下:

7. 用户登陆程序
    1. 输入用户名和密码;
    2. 判断用户名和密码是否正确? (name='root', passwd='westos')
    3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示。

代码如下:

# _*_ coding:utf-8 _*_
for i in range(3):
    name = raw_input('用户名:')
    passwd = raw_input('密码:')
    if name == 'root' and passwd == 'westos':
        print '登陆成功'
        break
    else:
        print '登陆失败'
        print '您还剩余%d次机会' % (2 - i)

# 循环执行结束后执行的代码
else:
    print '登陆次数超过三次,请等待100s后再次登陆'

结果如下:

8. 输入两个数值:
    求两个数的最大公约数和最小公倍数,
    最小公倍数=(num1*num2)/最大公约数。

代码如下:

# _*_ coding:utf-8 _*_
print '请输入两个整数:'
number1 = int(raw_input())
number2 = int(raw_input())
NUM_LCM = 0
if number2 > number1:
    min_number = number1
else:
    min_number = number2
for i in range(min_number, 1, -1):
    if number1 % i == 0 and number2 % i == 0:
        NUM_LCM += i
        break

print '%d,%d 的最大公约数为%d ' % (number1, number2, NUM_LCM)
print '%d,%d 的最小公倍数为%d ' % (number1, number2, ((number1 * number2) / NUM_LCM))

结果如下:

 

9.  判断变量名是否合法
    变量名可以由字母,数字或者下划线组成;
    变量名只能以字母或者下划线开头。
    1. 判断变量名的第一个元素是否为字母或者下划线s[0]
    2. 如果第一个元素符合条件, 判断除了第一个元素的其他元素s[1:]

代码如下:

# _*_ coding:utf-8 _*_
while True:
    name = raw_input('变量名:')
    if name == 'exit':
        print '欢迎再次使用'
        break
    if name[0].isalpha() or name[0] == '_':
        for i in name[1:]:
            if not (i.isalnum() or i == '_'):
                print '%s变量名不合法 ' % name
                break
        else:
            print '%s 变量名合法' % name
    else:
        print '%s变量名不合法' % name

结果如下:

10. 句子反转
- 题目描述:
  > 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前>后没有空格。
  比如: (1) “hello xiao mi”-> “mi xiao hello”
     - 输入描述:
     > 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
     - 输出描述:
     > 对于每个测试示例,要求输出句子中单词反转后形成的句子

     - 输入
           have a good time
     - 输出
           time good a have

代码如下:

# _*_ coding:utf-8 _*_
sentence = raw_input().split()
print ' '.join(sentence[::-1])

结果如下:

猜你喜欢

转载自blog.csdn.net/oikinkl/article/details/82146547