python中的条件语句
if
语句格式:
if condition:
success thing
...
else:
falsed thing
...
例:
设置变量为输入的值,因为输入的值均视为str,所以需要使用int转换,
if判定输入的是否大于15,如果大为真,否则为错
if中一个条件多判定
and
条件1 and 条件2
必须两个条件都满足
or
条件1或条件2
满足一个即可
如何判定值是否为空
I = input('')
if not I: #判定值如果为False
print('check your input')
如果不输入任何值,就会通过if验证bool值,然后执行操作
if中多个条件
if 条件1:
thing
elif 条件2:
thing
...
else:
thing
练习
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
2.电脑随即出拳–先假定电脑只会出石头,完成整体代码功能
3.比较胜负
石头 胜 剪刀
剪刀 胜 布
布 胜 石头
电脑出拳用随机数判定
import random #导入随机数
player = int(input('choice:'))
computer = random.randint(1,3) #设定随机数是1-3
print(computer)
if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)):
print("player win")
elif player == computer:
print('no winner')
else:
print('computer win')
for
python3中的for循环语句格式:
for Item in range(10) #例range的值是10
code
Item会循环遍历range定的数值,range定义的数值方式
range(stop):stop表示终止的数值,如:range(10) 表示0-9的数值
range(start,stop):start表示开始的数值,stop表示终止的数值,后者必须大于前者,如:range(2,10) 表示2-9之间的数值
range(start,stop,step):step表示取值的间隔,如:range(1,10,2) 表示1-10之间每隔2个数取一次值就是(1,3,5,7,9)
例: 用for计算1-100之间奇数的和
sum = 0
for i in range(1,100,2):
sum += i #i值会在range中循环,每次让前一次的和加上新的i值
print(sum)
根据输入的数字进行累乘,如输入3,结果为321
Num = int(input(''))
res = 1
for i in range(1,Num+1):
res *= i
print(sum)
循环结束关键字
break :跳出整个循环,不会再循环后面的内容
continue :跳出本次循环,continue触发的代码不再执行,但是循环依然继续
exit() :结束程序的运行
例: 设置for循环range(10),判定如果 i == 5 要做什么动作,最后在判定外打印一句话
- break
- continue
- exit
练习1: 有1,2,3,4四个数字,
求这四个数字能生成多少个互不相同且无重复数字的三位数(不能含有122,133这种)
首先定义计数器 =0,然后因为是三位数需要嵌套3此循环,并且判定3位数互相不等
count = 0
for i in range(1,5):
for o in range(1,5):
for p in range(1,5):
if (i != o and i != p and o != p):
print(i * 100 + o * 10 + p)
count += 1
print('%d' %count)
练习2: 用户登陆程序需求:
1. 输入用户名和密码;
2. 判断用户名和密码是否正确? (name=‘root’, passwd=‘westos’)
3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,
报错提示;
for i in range(3):
name = input('Username:')
passwd = input('Password:')
if (name == 'root' and passwd == 'redhat'):
print('Login')
break
else:
print('Please check Username or Password')
print('%d chance last' %(2 - i))
else:
print('Please try later')
练习3: 如何用for循环建立简单的命令行功能
import os #导入os函数,可以执行linux中的命令
for i in range(1000):
cmd = input('[root@work python]# ')
if cmd:
if cmd == 'exit':
print('logout')
break
else:
os.system(cmd) #使用os函数真实运行命令
else:
continue
while
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
…
如何使用while循环重复打印一串字符5次
如果需要无线循环某个内容,也可以使用while实现
while True:
print('hello world')
练习1:
计算:0~100之间偶数的和
i = 2 #定义计数器
sum = 0 #定义结果
while i <= 100:
sum += i
i += 2
print(sum)
练习2 用户登陆程序需求:
- 输入用户名和密码;
- 判断用户名和密码是否正确? (name=‘root’, passwd=‘westos’)
- 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,报错提示;
count = 0
while count < 3:
name = input('username:')
passwd = input('password:')
if (name == 'root' and passwd == 'redhat'):
print('login')
break
else:
print('Please check Username or Password')
print('%d chance last' % (2 - count))
count += 1
else:
print('Please try later')
练习3
输出内容如下
*
**
***
****
*****
row = 1 #row表示行
while row <= 5:
col = 1 #col表示列
while col <= row:
print('*',end='') #end='' 表示结束不换行
col += 1
print('') #打印空为了切换到下一行
row += 1
然后考虑如何反向输出
*****
****
***
**
*
row = 1
while row <= 5:
col = 5
while col >= row:
print('*',end='')
col -= 1
print('')
row += 1
练习4:
猜数字游戏
1. 系统随机生成一个1~100的数字;
2. 用户总共有5次猜数字的机会;
3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜",并且退出循环;
import random
computer = random.randint(1,100) #给定电脑选择的随机数
i = 0
while i < 5:
player = int(input('Num:'))
if player > computer:
print('too big')
elif player < computer:
print('too small')
else:
print('congratulation')
break
i += 1
else:
print('try again')