布尔值与空值

'''
布尔值:一个布尔值只有True、False两种值,
'''
b1 = True
b2 = False
print(b1, b2)


'''
空值:是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊值。
'''
n = None
print(n)



list(列表)

#存储5个人的年龄,求他们的平均年龄
age1 = 18
age2 = 19
age3 = 20
age4 = 21
age5 = 22
print((age1 + age2 + age3 + age4 + age5) / 5)


#思考:要存储100个人的年龄
#解决:使用列表
#本质:是一种有序的集合


'''创建列表
格式:列表名 = [列表选项1, 列表选项2, ……, 列表选项n]
'''
#创建了一个空列表
list1 = []
print(list1)
#创建带有元素的列表
list2 = [18, 19, 20, 21, 22]
index = 0
sum = 0
#嵌套最好不要超过3层
while index < 5:
    sum += list2[index]
    index += 1
    if index == 5:
        print("平均年龄:%d" % (sum / 5))
#注意:列表中的元素数据可以是不同类型的
list3 = [1, 2, "sunck", "good", True]
print(list3)


#列表元素的访问
#注意不要越界(下标超出了可表示的范围)
#取值  格式:列表名[下标]
list4 = [1,2,3,4,5]
print(list4[2])

#替换
list4[2] = 300
print(list4)


#列表操作:
#列表组合
list5 = [1,2,3]
list6 = [4,5,6]
list7 = list5 + list6
print(list7)

#列表的重复
list8 = [1,2,3]
print(list8 * 3)

#判断元素是否在列表中
list9 = [1,2,3,4,5]
print(3 in list9)
print(6 in list9)

#列表截取
list10 = [1,2,3,4,5,6,7,8,9]
print(list10[2:6])
print(list10[3:])
print(list10[:5])

#二维列表
list11 = [[1,2,3], [4,5,6], [7,8,9]]
print(list11[1][1])



#列表方法
#append   在列表中末尾添加新的元素
list12 = [1,2,3,4,5]
list12.append(6)
list12.append([7,8,9])
print(list12)

#在末尾一次性追加另一个列表中的多个值
list13 = [1,2,3,4,5]
list13.extend([6,7,8])
print(list13)

#在下标处添加一个元素,不覆盖原数据,原数据向后顺延
list14 = [1,2,3,4,5]
list14.insert(2, 100)
list14.insert(2, [200,300])
print(list14)


#pop(x=list[-1])
#移除列表中指定下标处的元素(默认移除最后一个元素),并返回删除的数据
list15 = [1,2,3,4,5]
list15.pop()
list15.pop(2)
print(list15.pop(1))
print(list15)


#remove  移除列表中的某个元素第一个匹配的结果
list16 = [1,2,3,4,5,4,5,4]
list16.remove(4)
print(list16)

#清除列表中所有的数据
list17 = [1,2,3,4,5]
list17.clear()
print(list17)


#从列表中找出某个值第一个匹配的索引值
list18 = [1,2,3,4,5, 3,4,5,6]
index18 = list18.index(3)
#圈定范围
index19 = list18.index(3, 3, 7)
print(index18, index19)


#列表中元素个数
list20 = [1,2,3,4,5]
print(len(list20))


#获取列表中的最大值
list21 = [1,2,3,4,5]
print(max(list21))


#获取列表中的最小值
list22 = [1,2,3,4,5]
print(min(list22))


#查看元素在列表中出现的次数
list23 = [1,2,3,4,5,3,4,5,3,3,5,6]
print(list23.count(3))

num24 = 0
all = list23.count(3)
while num24 < all:
    list23.remove(3)
    num24 += 1
print(list23)


#倒叙
list25 = [1,2,3,4,5]
list25.reverse()
print(list25)


#排序  升序
list26 = [2,1,3,5,4]
list26.sort()
print(list26)



#拷贝
#浅拷贝   引用拷贝
list27 = [1,2,3,4,5]
list28 = list27
list28[1] = 200
print(list28)
print(list27)
print(id(list28))
print(id(list27))
#深拷贝   内存的拷贝
list29 = [1,2,3,4,5]
list30 = list29.copy()
list30[1] = 200
print(list29)
print(list30)
print(id(list29))
print(id(list30))


#将元组转成列表
list31 = list((1,2,3,4))
print(list31)



条件控制语句

# -*- coding: utf-8 -*-


'''
if语句


if-else语句



if-elif-else语句
格式:
if  表达式1:
    语句1
elif 表达式2:
    语句2
elif 表达式3:
    语句3
……
elif 表达式n:
    语句n
else:                    #可有可无
    语句e

逻辑:当程序执行到if-elif-else语句时,首先计算“表达式1”的值,如果“表达式1”的值为真,则执行“语句1”,执行完“语句1”,则跳过整个if-elif-else语句。如果“表达式1”的值为假,计算“表达式2”的值。如果“表达式2”的值为真,则执行“语句2”,执行完“语句2”,则跳过整个if-elif-else语句。如果“表达式2”的值为假,计算“表达式3”的值。如此下去直到某个表达式的值为真才停止,如果没有一个真的表达式,且有else,则执行“语句e”
'''


age = int(input())

'''
if age < 0:
    print("娘胎里")
if age >=0 and age <= 3:
    print("婴儿")
if age >=4 and age <= 6:
    print("儿童")
if age >=7 and age <= 18:
    print("童年")
if age >=19 and age <= 30:
    print("青年")
if age >=31 and age <= 40:
    print("壮年")
if age >=41 and age <= 50:
    print("中年")
if age >=51 and age <= 100:
    print("老年")
if age >=101 and age <= 150:
    print("老寿星")
if age > 150:
    print("老妖怪")
'''

'''
if age < 0:
    print("娘胎里")
elif age >=0 and age <= 3:
    print("婴儿")
elif age >=4 and age <= 6:
    print("儿童")
elif age >=7 and age <= 18:
    print("童年")
elif age >=19 and age <= 30:
    print("青年")
elif age >=31 and age <= 40:
    print("壮年")
elif age >=41 and age <= 50:
    print("中年")
elif age >=51 and age <= 100:
    print("老年")
elif age >=101 and age <= 150:
    print("老寿星")
else:
    print("老妖怪")
'''


if age < 0:
    print("娘胎里")
elif age <= 3:
    print("婴儿")
elif age <= 6:
    print("儿童")
elif age <= 18:
    print("童年")
elif age <= 30:
    print("青年")
elif age <= 40:
    print("壮年")
elif age <= 50:
    print("中年")
elif age <= 100:
    print("老年")
elif age <= 150:
    print("老寿星")
else:
    print("老妖怪")

#elif        else if
#每个el都是对它上面所有表达式的否定


'''
女神说:
1、sucnk is a good man
  very good
2、sunck is a nice man
 very nice
3、sunck is a handsome man
 very handsome
4、你是好人
 我们真不合适
5、我希望我们之间存在纯洁友谊
 我们直接也就只能有友谊了
6、你好坏啊
 我感觉我们很合适
'''


循环语句

for语句

'''
for语句

格式:
for 变量名 in 集合:
    语句

逻辑:按顺序取“集合”中的每个元素赋值给“变量”,在去执行语句。如此循环往复,直到取完“集合”中的元素截止
'''
for i in [1,2,3,4,5]:
    print(i)


'''
range([start,] end[, step])函数    列表生成器
start默认为0,step默认为1
功能呢:生成数列
'''

a = range(10)
print(a)
for x in range(10):
    print(x)
for y in range(2, 20, 2):
    print(y)




#同时便利下标和元素
for index, m in enumerate([1,2,3,4,5]): #index, m = 下标,元素
    print(index, m)


sum = 0
for n in range(1, 101):
    sum += n
print(sum)



使用else语句

'''
while 表达式:
    语句1
else:
    语句2

逻辑:在条件语句(表达式)为False时执行else中的“语句2”
'''

a = 1
while a <= 3:
    print("sunck is a good man!")
    a += 1
else:
    print("very very good")


print("you are right")



死循环

#死循环:表达式永远为真的循环

while 2:
    print("sunck is a good man")



break与continue语句

break语句

'''
break语句:
作用:跳出for和while循环
注意:只能跳出距离他最近的那一层循环
'''

for i in range(10):
    print(i)
    if i == 5:
        #结束这个循环
        break

num = 1
while num <= 10:
    print(num)
    if num == 3:
        break
    num += 1
#注意:循环语句可以有else语句,break导致循环截止,不会执行else下面的语句
else:
    print("sunck is a good man")


continue 语句

'''continue语句
作用:跳过当前循环中的剩余语句,然后继续下一次循环


注意:跳过距离最近的循环
'''
'''
for i in range(10):
    print(i)
    if i == 3:
        continue
    print("*")
    print("&")
'''
num = 0
while  num < 10:

    print(num)
    if num == 3:
        num += 1
        continue
    print("*")
    print("&")
    num += 1

turtle模块绘图

'''
是一个简单的绘图工具

提供一个小海龟,可以把它理解为一个机器人,只能听得懂有限的命令

绘图窗口的原点(0,0)在正中间,默认海龟的方向是右侧

运动命令
forward(d)   向前移动d长度
backward(d)  向后移动d长度
right(d)     向右转动多少度
left(d)      向左转动多少度
goto(x,y)    移动到坐标为(x,y)的位置
speed(speed)  笔画绘制的速度[0,10]

笔画控制命令
up()         笔画抬起,在移动的时候不会绘图
down()       笔画落下,移动会绘图
setheading(d)  改变海龟的朝向
pensize(d)   笔画的宽度
pencolor(colorstr)  笔画颜色
reset()    回复所有设置,清空窗口,重置turtle状态
clear()    清空窗口,不会重置turtle
circle(r, e)   绘制一个圆形,r为半径,e为次数

begin_fill()
fillcolor(colorstr)
end_fill()

其他命令
done()  程序继续执行
undo()  撤销上一次动作
hideturtle()  隐藏海龟
showturtle()  显示海龟
screensize(x, y)

'''
#导入turtle库
import  turtle

turtle.screensize(40, 40)

#turtle.speed(10)
turtle.forward(100)
turtle.right(45)
turtle.forward(100)
turtle.goto(-100, -200)
turtle.up()
turtle.goto(-100, 100)
turtle.down()
turtle.pencolor("red")
#turtle.pensize(10)
turtle.forward(30)
turtle.setheading(50)
#turtle.clear()
turtle.circle(50)

turtle.goto(100, 50)

turtle.begin_fill()
turtle.fillcolor("blue")
turtle.circle(50, steps=5)
turtle.end_fill()

turtle.forward(50)
turtle.undo()
turtle.hideturtle()
turtle.done()



联系

找出第二大的值

listNum = []

num = 0
while num < 5:
    val = int(input())
    listNum.append(val)
    num += 1
print(listNum)

'''
#升序排序
listNum.sort()

count = listNum.count(listNum[len(listNum) - 1])
c = 0
while c < count:
    listNum.pop()
    c += 1

print(listNum[len(listNum) - 1])
'''

if listNum[0] >= listNum[1]:
    max = listNum[0]
    sec = listNum[1]
else:
    max = listNum[1]
    sec = listNum[0]

index = 2
while index < len(listNum):
    if listNum[index] >= sec:
        sec = listNum[index]
    if listNum[index] >= max:
        sec = max
        max = listNum[index]
    index += 1

print(sec)



2

打印99乘法表

输入两个数,求这两个数的最大公约数

输入一个字符串,将字符串中的大写字母转小写,小写字母转大写

随机生成一个6位数的验证码

正方形

矩形

正方体

五角星

奥运五环

围棋棋盘

国际象棋棋盘

#1
'''
num = 100
while num  <= 999:
    a = num % 10
    b = num // 10 % 10
    c = num // 100

    if num == a**3 + b**3 + c**3:
        print(num)
    num += 1


'''


'''
num = int(input())
if num == 2:
    print("是质数")
index = 2
while index <= num - 1:
    if num % index == 0:
        print("不是质数")
    index += 1

if index == num:
    print("是质数")
'''
'''
str = input()
index = 0
sum = 0
while index < len(str):
    if str[index] >= "0" and str[index] <= "9":
        sum += int(str[index])
    index += 1

print("sum = %d" %(sum))
'''
#字符串比较大小
#从第一个字符开始比较,谁的ASCII值大谁就大,如果相等会比较下一个字符的ASCII值大小,那么谁的值大谁就大
#print("ms" == "ms")#  \0

#90=2x3x3x5
'''
num = int(input())
i = 2
while num != 1:
    if num % i == 0:
        print(i)
        num //= i
    else:
        i += 1
'''



str = input()
#lasdf***asf asge    asg   a g  egars  sgr&
str1 = str.strip()
index = 0
count = 0

#sunck   is  a  good man
while index < len(str1):
    while str1[index] != " ":
        index += 1
        if index == len(str1):
            break
            #结束这个循环

    count += 1
    #print(count)
    if index == len(str1):
        break


    while str1[index] == " ":
        index += 1


print(count)