穿插增添中

日期:2019-09-25编辑作者:编程应用

判定用户输入数字是否为闰年

一. 课上代码

闰年的定义:能够被4整除的年份

#input是自定义输入内容的函数year = input("请输入年份数字:")#xxx.isdigit方法是检测字符串是否只由数字组成if year.isdigit():    year = int    if year % 4 == 0:        #{}.format 是一种格式化输出的方法        print("{} 是闰年".format    else:        print("{} 不是闰年".formatelse:    print("请输入年份数字")
#打飞机框架
加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0

while True:
    if 用户是否点击了关闭按钮:
        退出程序


    interval += 1
    if interval == 50:
        interval = 0
        小飞机诞生
#执行50次循环诞生一个小飞机,不然没有间隔的话屏幕全部都是小飞机

    小飞机移动一个位置
    屏幕刷新

    if 用户鼠标产生移动:
        我方飞机中心位置 = 用户鼠标位置
        屏幕刷新

    if 我方飞机与小飞机发生肢体冲突:
        我方挂,播放撞机音乐
        修改我方飞机图案
        打印"Game over."
        停止背景音乐,最好淡出

课上练习题:按照100分制,90分以上成绩为A,80到90为B,60到80为C,60一下为D,
写一个程序,当用户输入分数,自动转换为ABCD的形式打印
#方案一
score = int(input("Please input a score:"))
if 100 >= score >= 90:
    print('A')
if 90 > score >= 80:
    print('B')
if 80 > score >= 60:
    print('C')
if 60 > score >= 0:
    print('D')
if score < 0 or score > 100:
    print("Incorrect input!")

#方案二
score = int(input("Please input a score: "))
if 100 >= score >= 90:
    print('A')
else:
    if 90 > score >= 80:
        print('B')
    else:
        if 80 > score >= 60:
            print('C')
        else:
            if 60 > score >= 0:
                print('D')
            else:
                print("Incorrect input!")

#方案三
score = int(input("Please input a score: "))
if 100 >= score >= 90:
    print('A')
elif 90 > score >= 80:
    print('B')
elif 80 > score >= 60:
    print('C')
elif 60 > score >= 0:
    print('D')
else:
    print("Incorrect input!")

#三元操作符
x, y = 4, 5
if x < y:
    small = x 
else:
    small = y 
#例子可以改进为    
small = x if x < y else y

>>> assert 3 > 4
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    assert 3 > 4
AssertionError
>>> assert 4 > 3
#assert关键字称为“断言”,当这个关键字后边的条件为假的时候,
程序自动崩溃并抛出AssertionError的异常
#一般来说我们可以用它在程序中置入检查点,
当需要确保程序中的某个条件一定为真才能让程序正常工作的话,
assert关键字就非常有用了

>>> fovourite = 'FishC'
>>> for i in fovourite:
    print(i, end = ' ')


F i s h C 
>>> member = ['Jack', 'David', 'Chi', 'Hsin']
>>> for each in member:
    print(each, len(member))


Jack 4
David 4
Chi 4
Hsin 4
>>> for each in member:
    print(each, len(each))


Jack 4
David 5
Chi 3
Hsin 4
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
    print(i)


0
1
2
3
4
>>> for i in range(2, 9)
SyntaxError: invalid syntax
>>> for i in range(2, 9):
    print(i)


2
3
4
5
6
7
8
>>> for i in range(1, 10, 2):
    print(i)


1
3
5
7
9

#break的用法
bingo = 'Jack is a guy'
answer = input("Please input a statement: ")

while True:
    if answer == bingo:
        break
    answer = input("Sorry, your input is increct, please try again: ")

print("Awesome!")


#continue的用法,此处务必反复琢磨,算出答案
for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)

三次机会猜想程序生成的数字 A, 每次过后提示是否正确 或 大于小于 A, 三次过后, 游戏结束

import randomA = random.randintprintfor i in range:    B = input("请输入1-100之间的数字,包括1和100:")    if B.isdigit():        B = int        if 1<= B <= 100:            if B == A:                print("恭喜你,猜对了")                print                break            elif B > A:                print("第 {} 次, 猜的数字略大".format                if i+1 == 3:                    print            else:                print("第 {} 次, 猜的数字略小".format                if i+1 == 3:                    print        else:            print("请重新开始游戏,并输入符合要求的数字")    else:        print("请重新开始游戏,并输入符合要求的数字")        break

import randomtimes = 3i = 1A = random.randintwhile times:    B = input("请输入1-100之间的数字,包括1和100:")    if B.isdigit():        B = int        if 1<= B <= 100:            if B == A:                print("恭喜你,猜对了")                print                break            elif B > A:                print("第 {} 次, 猜的数字略大".format                if i == 3:                    print                times -= 1                i += 1            else:                print("第 {} 次, 猜的数字略小".format                if i == 3:                    print                times -= 1                i += 1        else:            print("请重新开始游戏,并输入符合要求的数字")    else:        print("请重新开始游戏,并输入符合要求的数字")        break

  

二. 测试题

打印1-100所有的奇数

for i in range:    if i % 2 == 1:        print

  

  1. 假设有x = 1, y = 2, z = 3,请问如何快速将三个变量的值互相交换?

一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;若每步上7阶,最后刚好一阶不剩.

a = 0while a < 1000:    if a % 2 ==1:        if a % 3 == 2:            if a % 5 == 4:                if a % 6 == 5:                    if a % 7 == 0:                        print    a += 1

  

验证用户密码的程序, 用户只有三次机会输入错误,不过若输入内容包含 "*" 的话,则不计算在内

nums = 3password = "hhhhh1"while nums:    intpu_password = input("请输入你的密码:")    if "*" in intpu_password:        print("密码中不能包含*号,请重新输入")    elif intpu_password == password:        print        break    else:        print("密码错误,还剩 {} 次机会".format)        nums -= 1

  

x, y, z = z, x, y

求100-999之间的所有水仙花数

  1. 你听说过成员资格运算符吗?

如果一个3位数等于其各个数的立方和, 则称为水仙花数, 例如: 153 = 1^3 + 5^3 + 3^3, 因为153 就是一个水仙花数

for i in range:    ls = list    a = int    b = int    c = int    if i == a ** 3 + b ** 3 + c ** 3:        print

  

有红、黄、绿三种颜色的球, 其中红球3个, 黄球3个, 绿球6个, 先将这12个球混合放在盒子中, 从中任意取出 8 个球,计算这些球的各种颜色搭配

for red in range:    for yellow in range:        for green in range:            if red + yellow + green == 8:                print("红球有 {} 个".format                print("黄球有 {} 个".format                print("绿球有 {} 个".format                print("------------------------")

  

#python有一个成员资格运算符,in,用于检查一个值是否在序列中,
如果在序列中返回True,否则返回False
>>> name = 'Jack'
>>> 'a' in name
True
>>> 'David' in name
False
  1. 什么情况下我们要使循环永远为真?
while True:
    循环体
用于游戏实现,因为游戏只要运行着,就需要时刻接受用户输入,因此使用永远为真确保游戏在线。
操作系统也同样,时刻待命,永远为真的这个循环叫做消息循环
另外很多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的
  1. 目测一下程序会打印什么?
while True:
    while True:
        break 
        print(1)
    print(2)
    break
print(3)

#会打印:
2
3

三. 动动手

  1. 课上代码打印成绩,根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在70~80分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
score = int(input("Please input a number: "))
if 80 > score >= 60:
    print("C")
elif 90 > score >= 80:
    print("B")
elif 60 > score >= 0:
    print("D")
elif 100 >= score >= 90:
    print("A")
else:
    print("Your input is incorrect!")
  1. 请将一下代码修改为三元操作符实现:
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

#三元符
small = x if(x < y and x < z) else (y if y < z else z)
  1. 如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此153是一个水仙花数。编写一个程序,求100~999之间所有的水仙花数。
#个人代码
for num in range(100, 1000):
    a = num // 100
    b = num // 10 % 10
    c = num % 10
    if num == a ** 3 + b ** 3 + c ** 3:
        print(num)

#精致代码
>>> a = [i ** 3 + j ** 3 + k ** 3 for i in range(1, 10) for j in range(0, 10) for k in range(0, 10) if i * 100 + j * 10 + k == i ** 3 + j ** 3 + k ** 3]
>>> print(a)
[153, 370, 371, 407]
>>> 
  1. 有红、黄、蓝三种颜色的球,其中红球3个,黄球3个,绿球6个。先将这12个球混合放在一个盒子中,从中任意摸出8个球,编程计算摸出各种颜色搭配。
#个人代码
for i in range(2, 7):
    for j in range(0, 4):
        for k in range(0, 4):
            if i + j + k == 8:
                print('Green{} + yellow{} + red{} = eight balls'.format(i, j, k))
  1. 设计一个验证用户密码程序,用户只有三次机会输入错误,演示如下:
![](https://upload-images.jianshu.io/upload_images/7725813-29dca0ecffeaf3af.jpg)
#个人代码
password = 'fish'
input_password = input("Please input a password: ")
times = 3

while '*' in input_password:
    print("Your password should not contain '*', you have three choices!", end = ' ')
    input_password = input("Please input a password: ")

while times > 0:
    times = times - 1
    if input_password == password:
        print("Your password is correct, entering the program...")
        break
    else:
        print('Your password is incorrect, you have {} times!'.format(times), end = ' ')
        input_password = input("Please input a password: ")

本文由今晚最快开奖现场直播发布于编程应用,转载请注明出处:穿插增添中

关键词:

搬运随笔一

Select CONVERT(varchar, GETDATE 02 29 2016 2:51PM Select CONVERT(varchar, GETDATE 02/29/16 Select CONVERT(varchar, GETDATE 16.02.29 Select CONVERT(varc...

详细>>

音信队列

本文链接: 文书档案提纲: 扫描关怀微信徒人号 1. 1)gitHub下载地址: 2): 安装php的RabbitMQ PHP扩充安装,正视的...

详细>>

iOS多线程之GCD深入理解

在 GCD中,参与了五个特别重要的概念:义务和队列一个线程是能够享有多少个试行队列的,全部职务是增多到行列中...

详细>>

GitHub Android Libraries Top 100 简单介绍

继上一篇 Android 学习资料搜聚获得大多响应,因而作者主宰再来一发,希望对您们全体帮忙 本项目根本对日前 GitHu...

详细>>