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])
结果如下: