- 1.输出函数
- 1.1 print函数
- 1.2 open函数
- 2. 变量
- 3.Python常见数据类型
- 3.1 整数
- 3.2浮点数
- 3.3布尔
- 4.注释
- 5.数据类型转换
- 6.输入函数
- 6.1 输入函数应用:计算两数之和
- 7.运算符
- 7.1 算术运算符
- 7.1.1 标准算术运算符
- 7.1.2 取余运算符
- 7.1.3 幂运算符
- 7.2 赋值运算符
- 7.2.1 支持链式赋值
- 7.2.2 支持系列解包赋值
- 7.3 比较运算符
- 7.4 布尔运算符
- 7.5 位运算符
- 7.6 运算符的优先级
- 7.7 对象的布尔值
- 8.分支结构
- 8.1 单分支结构
- 8.2 双分支结构
- 8.3 多分支结构
- 8.4 嵌套if-else结构
- 8.5 条件表达式
- 9.pass 语句
- 10.循环体
- 10.1 内置函数range
- 10.2 while循环
- 10.3 for_in循环
- 10.4 continue语句
- 10.5 else语句配合for循环和while循环使用
- 11.列表
- 11.1 列表的创建
- 11.2 列表的特点
- 11.3 获取制定元素的索引
- 11.4 列表的查询操作
- 11.4.1 获取单个元素
- 11.4.2获取多个元素
- 11.5 列表元素的增加操作
- 11.6 列表元素的删除操作
- 11.7 列表元素的修改操作
- 11.8 列表元素的排序操作
- 11.9 列表生成式
print() 括号中可以是整型数 浮点数 字符串 表达式
#输出数字
print(520)
print(98.5)
#输出字符串
print('helloworld')
print('helloworld')
#含有运算符的表达式
print(3+1)
#print函数是默认换行的,如果希望print函数不是换行输出,可以这样写
print('hello','world','Python')
1.2 open函数
open函数是将数据内容输出到文件上
fp = open('/tmp/pythonLearn/text.txt','a+') #如果文件不存在就创建,存在就在文件内容的后面继续追加
print('helloworld',file=fp)
fp.close()
2. 变量
变量由三部分组成
标识:内置函数id(obj)
类型:内置函数type(obj)
值:使用print打印
name = '99cloud' print(name) #99cloud print(id(name)) #140616021676784 print(type(name)) #3.Python常见数据类型 3.1 整数
二进制 0b开头
八进制 0o开头
十六进制 0x开头
print('二进制',0b10101111) #175
print('八进制',0o176) #126
print('十六进制',0x1EAF) #7855
3.2浮点数
浮点数存储不精确:可能会出现小数位数不确定的情况
解决方案:导入模块decimal
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2')) #运行结果3.3
3.3布尔
布尔值可以转化为整数
True == 1
False == 0
## 3.4 字符串 单引号 双引号 三引号都可以定义字符串 ```python str1='人生苦短,我用Python' str2="人生苦短,我用Python" str3=""" 人生苦短,我用Python """ str4=''' 人生苦短,我用Python ''' print(str1,type(str1)) print(str2,type(str2)) print(str3,type(str3)) print(str4,type(str4))4.注释
单行注释#
多行注释三个单引号 三个多引号
#单行注释 ''' 这是使用三个单引号的多行注释 ''' """ 这是使用三个双引号的多行注释 """5.数据类型转换
-
str()将数据转换为str类型
-
int()将数据类型转换为int类型
注意事项:
- 文字和小数类字符串,无法转换为整数
- 浮点数抹零取整
-
float()将数据类型转换为float类型
注意事项:
- 文字无法转换为浮点数
- 整数转化为浮点数,末尾为.0
input()
input()函数结果为用户输入的内容,类型为str
6.1 输入函数应用:计算两数之和#从键盘录入两个整数,计算两数之和
a=input('请输入一个加数:')
b=input('请输入另一个加数:')
print('结果为:',int(a)+int(b))
7.运算符
7.1 算术运算符
7.1.1 标准算术运算符
+ - * /
#除法运算 print(11/2) #5.5 #整除运算 print(11//2) #5 #整除运算是向下取整 print(9/-4)#-37.1.2 取余运算符
%
7.1.3 幂运算符**
#2的2次方 print(2**2)#4 #2的3次方 print(2**3)# 87.2 赋值运算符 7.2.1 支持链式赋值
链式赋值的变量,id相等
#链式赋值 a=b=c=20 print(a,id(a))#20 print(b,id(b))#20 print(c,id(c))#207.2.2 支持系列解包赋值
a,b,c=20,30,40 print(a)#20 print(b)#30 print(c)#40 print(a,b,c)
这样赋值可以进行数值交换
x,y=10,20 x,y=y,x print(x,y) #20,107.3 比较运算符
== 对象value的比较
is is not 对象id的比较
a = 10 b = 10 print(a==b) #true print(a is b) #true
lst1=[11,22,33] lst2=[11,22,33] print(lst1==lst2) #True print(lst1 is lst2) #False7.4 布尔运算符
and 当两个运算结果都为True时,结果为True
or 只要有一个为True,结果就为True
not 与运算数相反的结果
in 存在
not in 不存在
# not in
s='helloworld'
print('w' in s) #True
print('a' not in s) #True
7.5 位运算符
位与&:对应数位都是1,结果为1
位或|:对应数位都是0,结果为0
左移运算符<<:高位溢出舍弃,低位补0
右移运算符>>:低位溢出舍弃,高位补0
print(4&8) #按位与 0 print(4|8) #按位或 12 print(2<<1) #左移一位 4 print(4>>1) #右移一位 27.6 运算符的优先级
算术运算符 >> 位运算符 >> 比较运算符 >> 布尔运算符 >>赋值运算符
7.7 对象的布尔值Python中一切皆对象,所有对象都有一个布尔值
数值0 None 空字符串 空列表 空元组 空字典 空集合的布尔值都为False
#----------以下结果均为False-----------
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(''))
print(bool(""))
print(bool([])) #空列表
print(bool(list())) #空列表
print(bool(()))#空元组
print(bool(tuple())) #空元组
print(bool({})) #空字典
print(bool(dict())) #空字典
print(bool(dict())) #空字典
print(bool(set())) #空集合
8.分支结构
8.1 单分支结构
if
money = 1000
print('您的当前余额为:',money)
s = int(input('请输入取款金额'))
#判断余额是否足够
if money >= s:
money -= s
print('取款成功,剩余余额为:',money)
8.2 双分支结构
if else
number = 200
guess = int(input('请输入猜测的数字'))
if guess != number:
print('数字不正确')
else:
print('数字正确')
8.3 多分支结构
if elif else
number = int(input('请输入你的成绩:'))
if number > 100 or number < 0:
print('输入成绩错误')
elif number >90 and number <=100:
print('A')
elif number >80 and number <=90:
print('B')
elif number >70 and number <=80:
print('C')
elif number >60 and number <=70:
print('D')
else:
print('E')
8.4 嵌套if-else结构
#是否是会员
answer = input('是否是会员?输入(y or n)')
#购物金额
money = int(input('请输入购物金额'))
if answer == 'y':
if money >= 2000:
money *= 0.7
print('折后价',money,'元')
else :
money *= 0.8
print('折后价', money, '元')
else:
print('非会员,不打折')
print(money,'元')
8.5 条件表达式
x if 判断条件 else y 作用等同于Java中的三目运算符
num_a = int(input('请输入第一个整数'))
num_b = int(input('请输入第二个整数'))
print(str(num_a)+'大于等于'+str(num_b) if num_a >= num_b else str(num_a)+'小于'+str(num_b) )
9.pass 语句
什么都不做,只是一个占位符
10.循环体 10.1 内置函数range作用:用于生成一个整数序列
range函数返回值是一个迭代器对象
优点:不管是range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step。
创建range对象的三种方式:
- range(stop):创建一个(0,stop)之间的整数序列,步长为1
- range(start,stop):创建一个(start,stop)之间的整数序列,步长为1
- range(start,stop,step):创建一个(start,stop)之间的整数序列,步长为step
in与not in判断整数序列中是否存在制定的整数
r =range(10) print(r) # range(0, 10) print(list(r)) #list用于查看range对象中的整数序列 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]10.2 while循环
while 条件表达式:
条件执行体(循环体)
a = 1
while a<10 :
print(a)
a += 1
练习:使用while循环计算1-100的偶数和
#总和
sum = 0
#数
num = 0
while num <=100:
if num%2 == 0:
sum += num
num += 1
print(sum)
10.3 for_in循环
for 自定义的变量 in 可迭代的对象:
循环体
for item in 'Python':
print(item)
# range()产生一个整数序列,也是一个可迭代对象
for item in range(10):
print(item)
# 如果在循环体中不需要使用到自定义变量,可将自定义变量写为"_"
for _ in range(5):
print('人生苦短,我用Java')
10.4 continue语句
# 要求输出1到50之间所有5的倍数
num = 0
while num < 50:
num += 1
if(num % 5 != 0):
continue
print(num)
for item in range(1,51):
if item % 5 != 0:
continue
print(item)
10.5 else语句配合for循环和while循环使用
如果不执行break语句,就会执行和for、while同级的else
# for循环3次,如果密码都不正确,就会执行else
for item in range(3):
pwd = input('请输入密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均不正确')
11.列表
11.1 列表的创建
#创建列表的第一种,使用[] lst = ['hello','world',98] #使用列表的第二种,使用内置函数list() lst2 = list(['hello','world',98])11.2 列表的特点
- 列表元素按顺序有序排序
- 索引映射唯一一个数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据需要动态分配和回收内存
使用内置函数index(),参数为元素的名称
11.4 列表的查询操作 11.4.1 获取单个元素lst[index] 根据索引进行查询
正向索引从0到N-1
逆向索引从-N到-1
11.4.2获取多个元素列表名[start:stop:step]
- step为正数,start默认为第一个元素,stop默认为最后一个元素
- step为负数,start默认为最后一个元素,stop默认为第一个元素
#start = 1,stop = 6,step = 1 print(lst[1:6:1]) #执行结果 [20, 30, 40, 50, 60] #step = 2 print(lst[1:6:2]) #执行结果 [20, 40, 60]11.5 列表元素的增加操作
append() 在列表末尾添加一个元素
extend() 在列表末尾至少添加一个元素
insert()在列表的任意位置添加一个元素,第一个参数为索引,第二个参数为插入的元素
切片:在列表的任意位置添加至少一个元素
append和extend都可以在列表末尾添加一个新的列表,但是有所不同
Append
lst = [10,20,30] lst2 = ['hello','world'] lst.append(lst2) print(lst) #执行结果 [10, 20, 30, ['hello', 'world']]
extend
lst = [10,20,30] lst2 = ['hello','world'] lst.extend(lst2) print(lst) #执行结果 [10, 20, 30, 'hello', 'world']
insert
lst=[10,20,30] lst.insert(1,'hello') print(lst) #程序执行结果 [10, 'hello', 20, 30]
切片
# 切片 lst = [10,20,30,40,50] lst2 = ['hello','world'] lst[1:] = lst2 print(lst) #执行结果 [10, 'hello', 'world']11.6 列表元素的删除操作
remove() 一次删除一个元素;重复元素只删除第一个;元素不存在跑出ValueError
#列表remove删除操作 lst = [10,20,30,40] lst.remove(10)
pop() 删除一个指定索引位置上的元素;指定索引不存在抛出IndexError;不指定索引,删除列表中最后一个元素
# 列表pop删除操作 lst = [10,20,30,40] lst.pop(1) print(lst) #程序执行结果[10,30,40]
切片 一次至少删除一个元素。
#列表搭配切片进行删除操作:方式一,生成新列表 lst= [10,20,30,40,50,60] new_lst = lst[1:3] print(lst) print(new_lst) ''' 程序执行结果 [10, 20, 30, 40, 50, 60] [20, 30] '''
#列表搭配切片进行删除:方式二,不生成新列表 lst = [10,20,30,40,50] lst[1:4] = [] print(lst) #程序执行结果 [10, 50]
clear()清空列表
# 内置函数clear,清空列表中所有元素 lst = [10,20,30,40,50] lst.clear() print(lst) #程序执行结果 []
del()删除列表
#使用关键字del删除列表 lst = [10,20,30,40,50] del lst print(lst) #程序出错:NameError: name 'lst' is not defined11.7 列表元素的修改操作
为指定索引的元素赋予一个新值
#一次修改一个值 lst = [10,20,30,40,50] lst[2] = 'hello' print(lst) #程序执行结果 [10, 20, 'hello', 40, 50]
为指定的切片赋予一个新值
lst=[10,20,30,40,50] lst[1:3] = ['hello','world'] print(lst) #程序执行结果 [10, 'hello', 'world', 40, 50]11.8 列表元素的排序操作
排序操作常用两种方式:
- 调用sort()方法,列表中所有元素默认按照从小到大的顺序进行排序,可以指定reverse = True 进行降序排序
- 调用内置函数sorted(),可以指定reverse=True进行降序排序,原列表不发生改变
sort方法
lst = [10,2,300,4,17] lst.sort() print(lst) #按照降序排序 lst.sort(reverse=True) print(lst) ''' 程序执行结果 [2, 4, 10, 17, 300] [300, 17, 10, 4, 2] '''
内置函数sorted
lst = [10,2,300,4,17]
new_lst = sorted(lst)
print(lst)
print(new_lst)
print('##########分割线##########')
new_lst = sorted(lst,reverse=True)
print(lst)
print(new_lst)
'''
程序执行结果
[10, 2, 300, 4, 17]
[2, 4, 10, 17, 300]
##########分割线##########
[10, 2, 300, 4, 17]
[300, 17, 10, 4, 2]
'''
11.9 列表生成式
语法格式: [ i*i for i in range(start,stop)]
i*i 表示列表元素的表达式
i表示自定义变量
range()表示可迭代对象
lst = [i for i in range(1,10)] print(lst) lst2 = [i*2 for i in range(1,11)] print(lst2) ''' 程序执行结果 [1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] '''



