文章目录
1.if语句
1.1 if语句+else
if condition:
success thing
If语句+else
if condition:
success thing
else:
faile thing
1.2 if语句+条件关系(and/or/not)
condition1 and/or condition2
True False
and: 条件全部需要满足
or:条件至少需要满足其中一个
not:条件不满足时
注意:if语句后判断的是bool值
value = input('value:')
if not value:
print('Please check you input')
1.3 if语句+多个条件
条件并列
if c1:
thing
elif c2:
thing
...
else:
thing
条件嵌套
if c1:
thing
if c2
...
else:
else:
have_ticket = True
knife_length = 22
if have_ticket:
if knife_length > 20:
print('length:%d ;too long,not permitted!' %knife_length)
else:
print('length: %d;acceptabled long,come in' %knife_length)
else:
print('Please buy ticket')
1.3 if语句+随机数random
random.randint(a,b),返回[a b]之间的整数,包含a和b
在python中,要使用随机数,首先需要导入随即数模块 ‘工具包’,导入模块后,可以直接在模块名称后面敲一个.(点)然后Tab键,会提示该模块中包含的所有函数
eg:
random.randint(12,20):生成随机数n: 12 <= n <= 20
random.randint(20,20): 结果永远是20
random.randint(20,12):结果会报错:下限必须小于上限
注意:在导入工具包的时候,应该将导入的语句,放在文件的顶部
因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具
练习:
1.从控制台输入要出的拳 —石头(1)/剪刀(2)/布(3)
2.电脑随即出拳–先假定电脑只会出石头,完成整体代码功能
3.比较胜负
石头 胜 剪刀
剪刀 胜 布
布 胜 石头
import random##导入随机数
player = int(input('Your choice:'))##player的输入,注意整型才能比大小
computer = random.randint(1,3)##电脑给出的随机数
print('computer\'s choice:%d' %computer)
if((player == 1 and computer == 2) or (player == 2 and computer == 3)or (player == 3 and computer == 1)):
print('player wins')
elif player == computer:
print('try again,no winer')
else:
print ('computer wins')
2.for循环语句
2.1 for+range
for ITEM in range(10):
code
range示例 | 说明 |
---|---|
range(stop) | 0 ~ stop-1 |
range(5) | [0, 1, 2, 3, 4] |
range(10) | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
range(start,stop) | start ~ stop-1 |
range(1,10) | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
range(1,11) | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
range(start,stop,step) | start ~ stop |
range(1,11,2) | [1, 3, 5, 7, 9] |
range(2,11,2) | [2, 4, 6, 8, 10] |
注意:range含下线,不含上线
练习:1到100之间的偶数求和
sum = 0
for I in range(2,101,2):
sum += I
print(sum)
练习:1到100之间的奇数求和
sum = 0
for I in range(1,101,2):
sum += I
print(sum)
练习:输入一个数,求它的阶乘
num = int(input('Number:')) ##为了计算需要转换数据类型
res = 1 ##定义累乘器
for I in range(1,num+1):
res *= I
print(res)
2.2 for循环+break/continue/exit
continue | 跳出本次循环,继续下次循环 |
---|---|
break | 跳出整个循环,并在循环,会继续其他任务 |
exit() | 跳出程序 |
for I in range(6):
if I == 4:
continue/break/exit()
print('hello python')
print(I)
print('hello world')
练习:有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数(不能含有122,133这种)
count = 0 ##定义计数器
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i != j) and (j != k) and (k != i):
print(i * 100 + j * 10 + k)
count +=1
print('The count is: %d' %count)
练习:用户登陆程序需求:
1. 输入用户名和密码;
2. 判断用户名和密码是否正确? (name=‘root’, passwd=‘test’)
3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,报错提示;
for I in range(3):
name = input('Username:')##条件需要放入循环中,否则只能循环一次
passwd = input('Password:')
if name == 'root' and passwd == 'test':
print('Login success')
break##验证成功后需要跳出循环
else:
print('Login failed')
print('%d chance last' %(2-I))
else:
print('please try later' )##三次不成功
2.3 for循环实现命令行效果
import os ##导入os(python管理Linux的模块)
for i in range(1000):
cmd = input('[red@workstation test]$')
if cmd: ##如果有值
if cmd == 'exit':
print('Logout')
break ##跳出本次循环
else:
print('run %s' %cmd)
os.system(cmd) ##打印linux中的命令
else:
continue
练习:输入两个数值,求两个数的最大公约数和最小公倍数.
最小公倍数=(num1*num2)/最大公约数
3.while语句
python中的计数方法,常见的计数方法有两种,可以分为:
自然计数法(从1开始) – 更符合人类的习惯
程序计数法(从0开始) – 几乎所有的程序语言都选择从0开始计数
因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则>循环的计数从0开始
循环计算
在程序开发中,通常会遇到利用循环重复计算的需求(利用CPU的强大之处 完成相应的复杂计算)
遇到这种情况:
1.在while上方定义一个变量,用于存放最终的计算结果
2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
......
死循环:
while True:
print('hello python')
3.1 while的练习
练习:0~100之间所有数字的累积求和
i = 0 ##定义计数器
res = 0 ##定义累加器
while i <= 100:
res += i
i += 1
print('The result is %d' %res)
练习:0~100之间所有“偶数”的累积求和
i = 0
res = 0
while i <= 100:
if i%2 == 0:
res += i
i += 1
print('The result is %d' %res)
练习:0~100之间所有“奇数”的累积求和
i = 0
res = 0
while i <= 100:
if i%2 == 1:
res += i
i += 1
print('The result is %d' %res)
练习:用户登陆程序需求
1. 输入用户名和密码;
2. 判断用户名和密码是否正确? (name='root', passwd='test')
3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,报错提示;
trycount = 0 ##定义计数器
while trycount < 3:
name = input('Username:')
passwd = input('Password:')
if name == 'root' and passwd == 'test':
print('Login successful')
break
else:
print('Login failed')
print('%d chance last' %(2-trycount))
trycount += 1
else:
print('Please try later.')
练习:要求输出如下:(正右三角形)
*
**
***
****
*****
row = 1 #定义计数器(行)
while row <= 5:
column = 1 #定义计数器(列),每次循环后重新定义计数器为1
while column <= row:
print('*',end='')
column += 1
print('')
row += 1
练习:要求输出倒右三角形
row = 1
while row <= 5:
column = 5
while row <= column:
print('*',end='')
column -= 1
print('')
row += 1
练习:输出图形正左三角形
row = 5
i=1
while i <= row:###空格的数量
j = 1
while j < 6-i:
print(" ", end='')
j += 1
k = 1
while k < i + 1: ###*的数量
print("*", end='')
k += 1
print("")
i+=1
练习:输出倒左三角形
row = 5
i=1
while i <= row:
j = 1
while j < i:
print(" ", end='')
j += 1
k = 1
while k <= row+1-i :
print("*", end='')
k += 1
print('')
i+=1
练习:输出九九乘法表
num1 = 1
while num1 <= 9:
num2 = 1
while num2 <= num1:
print(num2 ,'*', num1,'=',num1*num2,end=' ' )
num2 += 1
print('')
num1 += 1
练习:猜数字游戏
- 系统随机生成一个1~100的数字;
- 用户总共有5次猜数字的机会;
- 如果用户猜测的数字大于系统给出的数字,打印“too big”;
- 如果用户猜测的数字小于系统给出的数字,打印"too small";
- 如果用户猜测的数字等于系统给出的数字,打印"恭喜",并且退出
import random
trycount = 0
computer = random.randint(1,100)
while trycount < 5:
player = int(input('Number:'))
if player > computer:
print('too big')
trycount += 1
elif player < computer:
print('too small')
trycount += 1
else:
print('Congratulation!')
break
print('The number is %d' %computer)