'''
在选择和循环结构中。条件表达式的值为False的情况如下
False 0 0.0 空值None 空序列对象(空列表,空元祖,空集合,空字典,空字符串)
空range对象 空迭代对象
其他条件,均为True.
在条件表达式中不能出现赋值操作符“=”
'''
if 3: #整数作为条件表达式
print("3是True")
a = [] #列表作为条件表达式,由于为空列表,是False
if a:
print("空列表,False")
s = "False"#非空字符串,是True
if s:
print("非空字符串,是True")
c = 9
if 3 < c < 20:
print("3<c<20")
if(3<c and c<20):
print("3<c and c<20")
#if m < 3 and (a = 3): 条件表达式中不能出现赋值操作符
s = input("输入一个数字:")
if int(s) < 10:
print("数字小于10")
else:
print("这个数字太大")
print("**************测试三元运算符*******************")
#测试三元运算符
print("s是小于10的数字" if int(s) < 10 else "s是大于10的数字")
print("************测试多分支选择结构******************")
#测试多分支选择结构
score = int(input("请输入分数:"))
if score < 60:
grade = "不及格"
elif score < 80:
grade = "及格"
elif score < 90:
grade = "良好"
else:
grade = "优秀"
print("分数是{0},等级是{1}".format(score,grade))
print("***********测试选择结构嵌套**************")
#测试选择结构嵌套
score = int(input("请输入一个在0-100之间的数字"))
if score < 0 or score > 100:
score = int (input("输入错误!请重新输入:"))
else:
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >=70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print("分数为{0},等级为{1}".format(score,grade))
print("**********代码简化版*****************************")
#代码简化版
scores = int(input("请输入一个1-100的分数:"))
degree = "ABCDE"
num = 0
if scores < 0 or scores > 100:
scores = int(input("数字太大,请重新输入:"))
else:
num = scores//10
if(num < 6):
num = 5
print("分数为{0},等级为{1}".format(scores,degree[9-num]))
print("***********测试While循环**********************")
#测试While循环
a = 1
while a <= 10:
if a <10:
print(a,end = "、")
else:
print(a,end = "")
a += 1
print()
print("***********测试for循环************************")
#测试for循环
#语法格式:for 变量 in 可迭代对象
# 循环语句
for x in "asdfg":
print(x,end = '\t')
print()
d = {"name":"杰","age":15}
for x in d: #遍历字典所有的key
print(x,end = '\t')
print()
for x in d.keys(): #遍历字典所有的key
print(x,end = '\t')
print()
for x in d.values():#遍历字典的所有value
print(x,end = '\t')
print()
for x in d.items(): #遍历字典的所有"键值对"
print(x,end = '\t')
print()
print("*******************测试else*********************")
#测试else
"""
While,for循环可以附带一个else语句(可选)。如果for,while语句没有被break语句结束,
则会执行else子语句,否则不执行。语法格式如下:
while 条件表达式:
循环体
else:
语句块
或者
for 变量 in 可迭代对象:
循环体:
else:
语句块
"""
#测试zip()并行迭代
for i in [1,2,3]:
print(i)
names = ("小明","小张","小花","小兵")
ages = ("12","23","12","25")
jobs = ("老师","学生","程序员","医生")
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
print("***********************测试推导式*************")
#列表推导式
y = [x*2 for x in range(1,50) if x % 5 == 0]
print(y)
cells = [(row,col) for row in range (1,10) for col in range(1,10) if row%2==0 if col%2==0]
print(cells)
#字典推导式
my_text = "i love you, i love sf, i love geao"
char_count = {c:my_text.count(c) for c in my_text}
print(char_count)
#集合推导式
b = {x for x in range(1,100) if x%9==0}
print(b)
#生成器推导式
#生成一个元祖对象,只能使用一次
gen = (x for x in range(4))
print(tuple(gen))
print(tuple(gen))#第二次为空
def printMax(a,b): #先用def声明
'''用于比较两个数=的大小''' #函数注解
if a>b:
print(a,"较大值")
else:
print(b, "较大值")
printMax(100,200)
help(printMax.__doc__) #通过这个方法来调用函数注解
#测试函数也是对象
c = printMax
c(5,6)
print("*******************************************")
#测试字符串的格式化
name = input("请输入你的名字:")
age = input("输入你的年龄:")
height = input("输入你的身高:")
question = input("回答Y or N:")
#字符串的格式化
# 这里用format也可以,
msg = ''''
--------Personal Info-------
Name : %s
Age : %s
Height : %s
Answer : %s
-------------End------------
'''% (name,age,height,question)
print(msg)