前言
程序执行时主要分三大流程,顺序执行(从上往下顺序执行)、分支执行(根据if判断条件成立与否,选择分支执行)、循环执行(根据条件,重复执行一块代码)。这一小节主要针对变量、输入输出、分支、循环展开。
变量
①python和其他高级语言不一样的地方是,在python中不需要事先定义变量的数据类型,解释器会自动识别。
②变量数据类型,分数字型(int、 float、 bool、 complex)和非数字型(str、列表、元祖、字典)
使用type()函数可以查看变量的数据类型。
>>> age = 18
>>> type(age)
<class 'int'>
>>> is_man=True
>>> type(is_man)
<class 'bool'>
>>> weight=75.9
>>> type(weight)
<class 'float'>
>>> name="庄san"
>>> type(name)
<class 'str'>
>>>
③不同变量间计算:数值型可直接计算,非数值可叠加字符个数
>>> weight+is_man
76.9
>>> weight+age
93.9
>>>
>>> name2="san"
>>> name="庄"
>>> name2="san"
>>> name+name2
'庄san'
>>> name+name2*3
'庄sansansan'
>>> (name+name2)*3
'庄san庄san庄san'
输入输出
①变量输入:通过键盘输入使用input()函数,内容输出使用print()函数
从键盘输入的值均为字符型,若要进行数值计算比较,需要类型转换。要转换为什么类型,就是用对应的类型名一致的函数。
age = int(input("请输入您的年龄:")) # 将用户输入的年龄从字符型转为整型,转换后可进行数值类比较计算
②变量输出:主要说格式化输出,当我们想把定义的变量也同时更新到屏幕,就要用到格式化输出
%s 输出字符串
%d 输出有符号的十进制数
%f 输出浮点型
%% 输出%符号
name = "小明"
print("我的名字叫%s,请多多关照!" % name)
student_no = 25
# %06d,表示不到6位到前面补0,超过6位该是多少就是多少
print("我的学号是 %06d" % student_no)
price = 9.01
weight = 5.9
money = price * weight
# %.2f表示输出小数点后2位
print("苹果单价 %.2f元/斤,购买了%.3f斤,需要支付%.4f元"%(price,weight,money))
# %%,表示转译输出%字符
scale = 0.25
print("数据比例是 %.2f%%"%(scale * 100)) # 先将值变成百分比再输出
print("数据比例是%.2f%%"%scale * 5) # 直接将字符打印5遍
分支
1.语法格式:
①单条if
if 判断条件:
条件成立,要做~
②两条if
if 判断条件:
条件成立,要做~
else:
条件不成立,要做~
③多条if
if 条件1:
1满足,要做~
elif 条件2:
2满足,要做~
elif 条件3:
3满足,要做~
else:
以上条件都不满足,要做~
④if嵌套
if 条件1:
条件1满足,要做~
if 条件2:
条件1和2均满足,要做~
else:
条件1满足,条件2不满足,要做~
else:
条件1不满足,要做~
2.比较运算符
“==” 判断两数是否相等
“!=” 判断两数是否不相等
“>” 判断前者是否大于后者
“>=” 判断前者是否大于等于后者
“<=” 判断前者是否小于等于后者
逻辑运算符:判断多个条件时,需要用到逻辑运算符将其多个条件进行连接
“and” 与,并且,多个条件同时成立,则True
“or” 或,或者,多个条件中只要有一个条件成立,则True
“not” 非,不是,对单个条件取反,当条件不成立时,则True
3.实际运用
import random
# 1.从控制台输入要出的拳-石头1/剪刀2/布3
fist = int(input("请输入您要出的拳(石头请输入1,剪刀请输入2,布请输入3):"))
# 2.电脑随机出拳-先假设电脑只会出石头
opponent_fist = random.randint(1, 3)
print("玩家出的拳头是 %d,电脑出的拳头是%d" % (fist,opponent_fist))
# 3.比较胜负
# 石头胜剪刀
# 剪刀胜布
# 布胜石头
if ((fist == 1 and opponent_fist == 2)
or (fist == 2 and opponent_fist == 3)
or (fist == 3 and opponent_fist == 1)):
print("我赢了,哦也")
# 平局
elif fist == opponent_fist:
print("平局哦,再来一局吧")
# 电脑赢
else:
print("电脑赢了呢")
循环
1.语法格式
① 一层循环
初始条件(计数器)设置
while 条件满足:
要做~
处理条件(计数器)
i = 1
while i <= 5:
print("23333")
i = i + 1
② 嵌套循环
条件1计数器设置
while 条件1:
条件1满足,要做~
条件2计数器设置
while 条件2:
条件2满足,要做~
处理条件2计数器
处理条件1计数器
2.赋值运算符
符号 | 简写 | 解析 |
“=” | c=a+b | |
“+=” | c+=a | c=c+a |
“-=” | c-=a | c=c-a |
“*=” | c*=a | c=c*a |
“/=” | c/=a | c=c/a |
“//=” | c//=a | c=c//a除取整 |
“%=” | c%=a | c=c%a除取余 |
“**=” | c**=a | c=c**a幂运算符 =>c=c的a次方 |
3.循环关键字
break:当某一条件成立时,跳出整个循环,不再执行循环。
i = 0
while i < 10:
if i == 3:
break
print(i)
i += 1
print("over")
结果:当满足i==3条件时,则3之后的循环便不会执行
0
1
2
over
continue:当某一条件成立时,不执行这次循环的循环代码,跳到执行下一次循环。
i = 0
while i < 10:
if i == 3:
i += 1 # 若不处理计数器,会导致死循环
continue
print(i)
i += 1
print("over")
结果:当满足i==3条件时,当前=3的循环不执行,继续执行4开始的循环。
0
1
2
4
5
6
7
8
9
over
4.转义字符
符号 | 含义 |
\t | 输出文本时,保持垂直方向对齐 |
\n | 在控制台输出一个换行符 |
\r | 回车 |
\’ | 打印单引号 |
\\ | 打印\号 |
\" | 打印双引号 |
5.实例:打印9×9乘法口诀
# 打印99乘法表,格式为
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20
"""
row = 1
while row <= 9:
col = 1
while col <= row:
value = col * row
print("%d*%d=%d" % (col, row, value),end="\t")
col += 1
print("")
row += 1