文章目录
- 1.if判断语句
- 2.逻辑运算符 and|or
- 3.for循环语句
- 4.循环的控制语句(break、continue、exit)
- 5. while语句
1.if判断语句
(1)基础格式:
if
要判断的条件(True):
条件成立的时候,要做的事情else
:
条件不成立的时候要做的事
# 1.定义一个变量
age = 20
# 2.判断年龄是否满足18
if age >= 18:
print(age)
else:
print('sorry~')
(2)多层if格式:if
要判断的条件(True):
条件成立的时候,要做的事情elif
要判断的条件(True):
…else
:
条件不成立的时候要做的事
# score = 79
#
# if 90 < score <=100:
# grade = 'A'
# elif 80 < score <= 90:
# grade = 'B'
# else:
# grade = 'C'
#
# print(grade)
2.逻辑运算符 and|or
(1)and
1 and 2
两个条件同时满足 就返回True
只要有一个条件不满足,就返回False
(2)or
1 or 2
两个条件只要满足一个 就返回True
两个条件都不满足,就返回False
python_score = 60
c_score = 50
if python_score >= 60 and c_score >=60:
print('考试通过')
else:
print('考试不通过')
例1: 判断用户的输入是否为空
value = input('Value:')
# if value == '':
# print('请输入合法的值')
if not value:
print('请输入合法的值')
例2: 判断闰年?
用户输入年份year, 判断是否为闰年?
(year能被4整除但是不能被100整除 或者 year能被400整除, 那么就是闰年;)
year = int(input('Year:'))
if (year % 4 == 0 and year %100 !=0) or (year %400 == 0):
print('%d是闰年' %(year))
else:
print('%d不是闰年' %(year))
例3:输入年份与月份判断,该月有多少天?
year = int(input('Year: '))
month = int(input('month: '))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) and (month == 2):
print("本月29天")
elif (month == 1) or (month == 3) or (month == 5) or (month == 7) or (month == 8) or (month == 10) or (month == 12):
print("本月31天")
elif (month == 4) or (month == 6) or (month == 9) or (month == 11):
print("本月30天")
else:
print("本月28天")
例4:
需求:
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
2.电脑随即出拳
3.比较胜负
石头 胜 剪刀
剪刀 胜 布
布 胜 石头
import random
#1.从控制台输入要出的拳 ---石头(1)/剪刀(2)/布(3)
player = int(input('请输入你要出的拳头:---石头(1)/剪刀(2)/布(3):'))
#2.电脑随即出拳
computer = random.randint(1,3)
print('玩家:%d,电脑:%d' %(player,computer))
if ((player ==1 and computer == 2) or range(7)
(player == 2 and computer == 3) or
(player == 3 and computer == 1)):
print('玩家胜利~~~')
elif player == computer:
print('平局~~~')
else:
print('玩家输了~~')
3.for循环语句
(1)for 循环使用的语法for
变量 in range(10)
:
循环需要执行的代码else
:
全部循环结束后要执行的代码
(2)内置的python函数——range
range()
表示范围
range(stop) | 0~stop-1 |
range(start,stop) | start~stop-1 |
range(start,stop,step) | step:为步长 |
[0, 1, 2, 3, 4, 5, 6]
>>> range(1,7)
[1, 2, 3, 4, 5, 6]
>>> range(2,7)
[2, 3, 4, 5, 6]
>>> range(11)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,11,2)
[1, 3, 5, 7, 9]
>>> range(2,11,2)
[2, 4, 6, 8, 10]
>>> range(2,11,3)
[2, 5, 8]
>>> range(11,2)
[]
例5:用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确(‘name==root’,'passwd=‘westos’)
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错
for i in range(3): #0 1 2
name = input('用户名:')
passwd = input('密码:')
if name == 'root' and passwd == 'westos':
print('登陆成功')
# 跳出整个循环,不会再执行后面的内容
break
else:
print('登陆失败')
print('您还剩余%d次机会' %(2-i))
else:
print('登陆次数超过三次,请等待100s后再次尝试登陆')
例6:
(1) 求1~100的和
# for(i=1;i<=100;i++)
sum = 0
for i in range(1,101):
sum +=i #sum = sum + i
print(sum)
(2)求1~100的奇数之和
sum = 0
for i in range(1,101,2):
sum += i
print(sum)
(3)求1~100的偶数之和
sum = 0
for i in range(2,101,2):
sum += i
print(sum)
(4)用户输入一个数字,求该数的阶乘:3!=321
digit = (int(input("请输入一个数:")))
sum = 1
for i in range(1, digit+1):
sum *= i
print(sum)
例7:输入两个数值:求两个数的最大公约数和最小公倍数.
(最小公倍数=(num1*num2)/最大公约数)
# 接收两个数字
num1 = int(input('Num1:'))
num2 = int(input('Num2:'))
# 找出两个数中最小的值
min_num = min(num1, num2)
# 最大公约数的范围在1~min_num
for i in range(1, min_num + 1):
if num1 % i == 0 and num2 % i == 0:
# 当循环结束的时候,gys中保存的就是最大的公约数
gys = i
# 最小公倍数
lcm = int((num2 * num1)/gys)
print('%s和%s的最大公约数是:%s' %(num1,num2,gys))
print('%s和%s的最小公倍数是:%s' %(num1,num2,lcm))
4.循环的控制语句(break、continue、exit)
break | 跳出整个循环 不会再执行循环后面的内容 |
continue | 跳出本次循环,continue后面的代码不会执行 |
exit( ) | 结束程序的运行 |
例8:模拟terminal实现的功能编写程序
import os #导入命令模块
for i in range(25):
cmd = input('[xixi@foundation1 ~]')
if cmd:
if cmd=='exit':
print('logout')
break
else:
print('run %s' %(cmd))
#运行shell命令
os.system (cmd)
else:
continue
5. while语句
(1)while语句语法while
条件满足:
执行语句1…else
:
循环完成后 要执行的语句
(2)
\t:制表符,协助我们在输出文本的时候在垂直方向保持对齐
print('1\t2\t3')
print('10\t20\t30')
\n:换行符
print('hello\npython')
end=‘’:输出不换行
例9(while循环):
用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确('name==root','passwd='westos')
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错
i = 0
while i < 3:
name = input('用户名:')
passwd = input('密码:')
if name == 'root' and passwd == 'westos':
print('登陆成功')
# 跳出整个循环,不会再执行后面的内容
break
else:
print('登陆失败')
print('您还剩余%d次机会' %(2-i))
i += 1
else:
print('登陆次数超过三次,请等待100s后再次尝试登陆')
例10(while嵌套):
打印出四种形式的九九乘法表:
左下角:
row = 1
while row <= 9:
col = 1
while col <= row:
print('%d * %d = %d\t' %(row,col,row*col),end='')
col += 1
# 手动换行
print('')
row += 1
左上角:
row = 9
while row > 0:
col = row
while col > 0:
print('%d * %d = %d\t' % (row, col, row * col), end='')
col -= 1
# 手动换行
print('')
row -= 1