一、数据类型转换
1.数据类型自动转换
a = 10 整型(in)
b = 12.5 浮点型(float)
result = a + b 会自动将a转换成浮点型,再计算
print (type(result))
result2 = a + True 会自动将布尔型转换成1
print (result2,type(result2))
运行
<class 'float'>
11 <class 'int'>
2.强制转换
- 基本语法:类型名(需要转换的数据)
a.将其他数据转换成int型:浮点型、布尔和部分字符串
运行print (int(12.5)) float--->int:去掉小数点和小数点后面的数 print (int(True),int(False)) bool--->int: 1 0
12 1 0
- 去掉字符串的引号后,字符串的内容本身就是一个整数的时候,才能被转换成整型
运行print (int('123')) print (int('-123')) print (int('122.5')) 错误 print (int('123a')) 错误
123 -123
b.将其他的数据类型转换成flaot类型:整数、布尔和部分字符串
print (float(10)) i nt---->float:在整数后加.0 print (float(True)) bool--->float:True:1.0,False:0.1
- 去掉括号后,字符串的内容本身就是一个整数或者浮点数的时候,才能被转换成浮点型
print (float('2e3'),float('-12.3'),float('10'))
c.将其他数据类型转换成bool:
- 所有的数据类型都可以转换成bool
数字中:除0是False,其他都是True
- 字符串中:除了空串是False,其他都是True
总结:所有为空、为0的值全是False,否则就是True
print (bool(1),bool(-1),bool(1.1),bool(-1.25)) print (bool(0),bool(0.0)) print (bool(None),bool([]))
d.其他数据类型转换成字符串,转换的时候就是在数据外面加引号
print (str(100),str(1.2),str(True),str([1,2,3]))
二、if语句
python中的分支结构只有一种:if分支结构
1.if
语法:
if 条件语句:
——执行语句块
其他语句
说明:
a.if:python中的关键字,‘如果’的意思,用来做判断的
- b.条件语句:最终结果会转换成布尔值
- c.冒号:冒号是固定语法,必须写!
- d.执行语句块:可以是多行语句,但是每行语句必须和前面的if保持一个缩进(一个tab/制表符)
执行过程:先判断条件语句的结果是否为True,如果是就执行冒号后面的语句块。否则,直接执行if模块后的其他语句
练习:用一个变量保存一个学生的成绩,要求:大学生 成绩大于90的时候,打印优秀,无论成绩多少,都打印 grade = 100 if grade > 90: print('优秀') print ('%d' % (grade))
2.if——else
语法:
if 条件语句:
——执行语句块1
else:
——执行语句块2
其他语句说明:
- else:关键字(else后边的冒号不能省)
- 执行过程:先判断条件语句的结果是否为Ture,如果是就执行语句块1,然后再执行其他语句; 如果为False,就执行语句块2,然后再执行其他语句
`
python
age = 20
if age >= 18:
print (‘成年’)
print (‘可以进网吧’)
else:
print (‘未成年’)
#### 3.if_elif_else
语法:
if 条件语句1:
——语句块1
elif条件语句2:
——语句块2
elif 条件语句3:
——语句块3
。。。
else:
——语句块
其他语句
```python
+要求成绩大于90分打印优秀,80-90打印良好,60-79打印及格,60以下不及格
grade = 80
if grade > 90:
print ('优秀')
elif grade >=80:
print ('良好')
elif grade >=60:
print ('及格')
else:
print ('不及格')
`
练习
```python
age = 20
if age >= 18:
print ('成年')
print ('可以进网吧')
else:
print ('未成年')
4.if语句的嵌套
- 每个if分支中都可以嵌套其他的if语句
if 条件1:
——执行语句1
——if 条件2:
——执行语句2
——else:
——执行语句3
else:
——执行语句4成绩和年龄:如果成绩大于90并且年龄是18以上 就获奖100万; 年龄小于18岁,就获取奖金200万 成绩小于90,打印没有奖金 grade = 90 age = 18 if grade >= 90: if age >=18: print ('100万') else: print ('200万') else: print ('没有奖金')
- 练习:产生一个随机数(0-100),判断随机数是否是偶数,如果是打印偶数,否则打印奇数;如果能被4整除,再打印能被4整除
import random
number = random.randint(0,100)
print ('随机数是:%d' % (number))
if number % 2 == 0:
print ('偶数')
if number % 4 == 0:
print ('能被4整除')
else:
print ('奇数')
补充:
import是python中导入模块或者模块中内容的关键字
random是python内置的产生随机数模块import random number = random.randint(10,20) 产生一个10到20的随机数,并且存到number中 print (number)
三、条件语句的简写
- 判断一个数是否是偶数的两种写法
number = 10 if number %2 == 0: print ('偶数')
- 判断一个数是否是偶数的两种写法
- 推荐
`
python
if not number %2 :
print (‘偶数’)
if number %2:
print (‘奇数’)
+ 判断一个字符串是否是空串
```python
str1 = 'abc'
if str =='':
print ('空串')
else:
print ('不是空串')
在完成某个功能的时候,如果需要重复某个操作,就可以使用循环
python中的循环结构:for循环和while循环
1.for循环的结构:
for 变量名 in 序列:
——循环体
说明:
a.for:关键字
b.变量名:和声明变量时的变量名的要求一样
c.in:关键字
d.序列:容器(数据本身是有多个数据组成),例如:字符串、列表、字典、元祖、range、生成式和生成器
e.循环体:需要重复执行的代码
执行过程:让变量去序列中一个一个取数据,取完为止。每取一次数据,执行一次循环体
for x in ('123'):
print (x)
range函数是python中内置函数,作用是产生指定范围中的数字
xrange是python2中的函数,python3中用range来代替
range(N):产生0~N-1的所有整数
range(N,M):产生N~M-1的所有整数
range(N,M,step):产生从N开始,每step产生一个整数,到M之前
print ('==========')
for x in range (10):
print (x)
print ('==========')
for n in range (10,15):
print (n)
print ('=========')
for x in range (1,11,2):
print (x)
- 练习:计算1+2+3+。。。+100
number = 0 for x in range (1,101): number += x print (number)
- 练习:统计1~1000中能够被三整除的数的个数
ste = 0
for x in range (1,1001):
if x %3 == 0:
print ('%d 可以被三整除' % (x))
ste += 1
print ('1~1000中能被三整除的个数:%d' % (ste))
- 注意:for 循环中用来获取序列值的变量,在循环体不是一定要使用. 如果不用,那么变量名可以声明为_
打印50行”***”for _ in range(50): print ('***')
- 1~10000中能被5整除的个数
sum = 0 for x in range (1,10001): if x %5 ==0: sum += 1 print ('1~10000中能被5整除的数的个数是:%d' % (sum))
(1,200) 7 个数
dob = 0
for x in range (1,201):
if x %7 == 0:
dob += 1
print (dob)
五、while循环
1.结构:
while 条件语句:
循环体
2.说明:
while: 关键字
条件语句:结果是True或者False
循环体:要重复执行代码
3.执行过程:
判断条件语句的结果是否为True,如果为True就执行循环体,执行完循环体再判断条件语句是否为True。。。。。,直到结果为False为止
1+2+3+...+100
n = 0
x = 1
while x <= 100:
n += x
x += 1
print (n)
x = 1,n = 0
1 <= 100 True;n += x 0+1=n;x+=1 1+x=2
x = 2,n = 0+1
2 <=100 True;n=0+1+x=0+1+2;x=1+x=3
。。。
x = 100,n = 0+1+2+...+99
x <= 100 True;n=0+1+。。。+100;x=1+x=101
练习:循环结束,x的值和n的值,分别是多少 x = 6, n = 2+3+4+5+6
x = 1 n = 0 while x <= 5: x += 1 n += x print (n,x)
for 循环与while循环的比较
for循环的循环次数是有限的,并且是确定的;while循环的循环次数不确定 for循环:1.遍历序列中的值 2. 循环次数确定
while循环:1.死循环 2.循环次数不确定练习:找大于10000的数中,第一个能够被23整除的数
`
python
x = 10001
while x %23 != 0:
x += 1
print (x)
`