import导入一个模块/包的关键字
random中包含了很多和随机数相关的功能
import random
1. python中的分支结构就只有if,没有switch
if就是在程序中做判断的
randint(m,n):产生一个m到n的随机整数
num = random.randint(0,10)
print(num)
2.if结构
a.语法
if 条件语句:
执行语句块b.说明
if就是关键字
条件语句:要求必须有值,可以是自变量、表达式,一般要求结果是布尔值
:固定写法,在python中一般在冒号后都会产生代码块
语句块:可以是一行代码,且必须和if保持一个缩进c.执行过程:先判断条件语句的值是否为真,为真则执行后面语句块,否则不执行,直接执行if后面的其他语句
d.注意:在满足条件后才执行的代码写在if中,不管条件是否成立都要执行的代码写在if外面
但是如果有if,if里面至少有一条语句
if num & 1 == 0:
print('%s :是偶数' % (num))
练习:判断一个字符串随机位置上的一个字符是否是字母如果是就打印该字符是字母
不管是不是都打印取出来的字符
str1 = '26hhj88(jk'
char = str1[random.randint(0,len(str1)-1)]
if char.isalpha(): #'a' <= char <= 'z' or 'A' <= char <= 'Z'
print('%s :该字符是字母' % (char))
3.if-else结构
a.语法
if 条件语句:
语句块1
else:
语句块2b.执行过程:先判断条件真假,真就执行语句块1,否则执行语句块2
4.if-elif-else结构
a.语句
if 条件语句1:
语句块1
elif 条件语句2:
语句块2
else:
语句块3b.执行过程:先判断条件1,为真,执行语句1,条件1为假,判断条件2,为真,执行语句块2,否则执行语句块3
c.注意:if-elif-结构中,elif中可以根据情况有多个,else可省略
练习:随机产生0-100的年龄值,再根据年龄的不同处于什么阶段
age = random.randint(0,100)
if age <= 3:
print('%d 幼儿' % (age))
elif age <= 12:
print('%d 儿童' % (age))
elif age <= 18:
print('%d 少年' % (age))
else:
print('%d 成年' % (age))
练习:grade成绩和操评(score)
条件: grade > 4 and score >= 90 一等
grade = 3.6
score = 90
if grade >= 4 and score >= 90:
print('grade = %d score = %d 一等' % (grade,score))
elif 3.5 <= grade and score >= 90:
print('grade = %d score = %d 二等' % (grade,score))
elif 3 <= grade and score >= 95:
print('grade = %d score = %d 三等' % (grade,score))
else:
print('没有')
5.if嵌套
- 在if分支结构中可以使用if嵌套
练习:判断一个数是否是偶数,如果是打印是偶数,并判断是否能被4整除,如果能打印‘是4的倍数’,否则打印不是4的倍数
num = random.randint(0,100)
print(num)
if num & 1 == 0:
#判断是偶数能否被4整除
print('是偶数')
if num % 4 == 0:
print('是4的倍数')
else :
print('不是4的倍数')
else:
print('是奇数')
#是奇数判断最后一位是否是1
if num % 10 == 1:
print(num % 10)
6.python中只有两种:for和while
- 当某个操作需要重复的执行的时候,就需要用到循环
6.1.for循环
a.语法:
for 变量 in 序列:
循环体b.说明:for:关键字
变量:随便命名(不能是关键字)
in:关键字,固定用法
序列:要求是一个值,而且值不需是一个序列(容器),如:字符串、列表、字典、集合、元祖、迭代器、范围(range)
循环体:和for保持一个缩进的代码段,会被重复执行c.执行过程:用变量去中逐个取容器里面的值,每取一个值执行一次循环体
for x in 'abc':
print(x)
练习:判断字符串‘a78and71-2cd’中数字的个数
str1 = 'a78and71-2cd'
count = 0
for x in str1:
if x.isdigit():
count += 1
print(count)
6.2.range(n):产生一个0~n-1范围对应的整数序列
- a.练习:1+2+3+....+100
sum1 = 0
for x in range(101): #range(0,101)
sum1 += x
print(sum1)
b.range(m,n):m~n-1范围内的整数序列
c.range(m,n,step):产生一个m~n-1中间隔step范围对应的整数序列
7.while 循环
python中没有do-while
a.语法:
while 条件语句:
循环体b.说明:
while:关键字
条件语句:和if条件语句的要求一样,可以是任何有值的表达式,不可以是赋值语句
:固定写法
循环体:重复执行的代码段,与while保持一个缩进c.执行过程:先判断条件语句
条件满足,执行循环体,执行完循环体在判断条件,直到条件为False注意:while True 死循环
sum1 = 0
x = 1
while x <= 100:
sum1 += x
x += 1
print(sum1)
练习:求N的阶乘
n = 10
m = 1
x = 2
while x <= n:
m *= x
x += 1
print(m)
练习:获取hello python中的字符
str1 = 'hello python'
index = 0
while index < len(str1):
print(str1[index],end=' ')
index += 1
* 8.for和while的使用情况
- 如果是不断的获取序列中的元素就有for循环
- 如果循换次数确定,最好用for循环
- 循环次数不确定最好使用while循环
练习:产生一个随机数字,不断的输入一个数直到相等才结束,并提示每次大小
import random
n = int(input('请输入一个正整数'))
print(n)
m = random.randint(1,100)
print(m)
while n != m:
if n > m:
print('输入数字大了')
else:
print('输入数字小了')
n = int(input('请输入一个正整数'))
print('恭喜你答对了!')
9.continue
只能写在循环体中,当遇到continue就结束本次循环,直接进入下一次循环的判断
遇到continue: for 直接取下一个值
while判断下一次条件是否成立
for x in range(10):
print(x)
continue
print(x*2) #不会执行
while index < 10:
index += 1
continue
print('=====') #不会执行
练习:计算1~100中非奇数的和,使用continue
sum1 = 0
for x in range(1,101):
if x & 1 == 1:
continue
sum1 += x
print(sum1)
10.break
- 只要在循环中遇到break直接结束,执行循环外面的语句
for x in range(1,10):
print(x)
break
print('=========')
11.else
- a.语法
for 变量 in 序列:
循环体
else:
代码块
while 条件:
循环体
else:
代码块
- b.执行过程
循环自然结束,执行else后面的代码
如果循环遇到break结束的,就不会会执行else里面的代码
for x in range(1,10):
print(x)
if x == 3:
break
else:
print('结束')