系列文章目录🍁
文章目录
🌴前言
🌿一、Python简介与开发环境
1.应用
人工智能、机器学习、深度学习 、数据分析、爬虫等等等等。
2.python简介
1989年由荷兰人吉多·范罗苏姆创造;
解释型语言,开发过程无编译环节;
交互式语言,可在>>>后直接执行代码
面向对象的语言。
“胶水语言”可将C++或JAVA所写的模块整合在一起。
3.开发环境
开发环境大家可以根据自己的需求解决,我们需要首先在官网下载python,其次安装编辑器,Pycharm是当前最主流的python编辑器,但过于笨重,小沐目前用不到那么多功能,就在VScode上编辑就ok了,还有其他的一些编辑器,大家可以根据需求安装。
🌿二、变量与数据类型
1.print函数
print(520)
print('Hello,World')
print("Hello,world")
print(3+1)
fp=open('D:/.text.txt','a+')#a+表示追加,每运行一次,文档中就多出一行hello,world
print('helloworld',file=fp)
fp.close()
#所指定的盘要存在
#使用file=
print('hello','world',
'python')
fp=open('D:/.text.txt','a+')#a+表示追加,每运行一次,文档中就多出一行hello,world
print('helloworld',file=fp)
fp.close()
上述代码结果是在指定目录下的文件里打印了helloworld。
2.转义字符
#转义字符
print('hello\nworld') #换行
print('hello\tworld') #制表符,四个位置为一个整体(含空格)
print('hellooo\tworld')#四格一个制表位
print('hello\rworld')# 回车 world覆盖了hello
print('hello\bworld')#回退一格
print('hello\\\world')# 两个斜杠代表单斜杠
print('老师说:\'大家好\'') #单个斜杠不起作用
#原字符:前面加r或R使转义字符失效
print(r'hello\nworld\\')
#最后一个字符不能为一个\,可以为两个,为1个会报错,如下:
print(r'hello\nworld\')
3.二进制与字符编码
print(chr(0b100111001011000)) #乘
print(ord('乘')) #ord函数获取字符对应的十进制数
4.标识符和保留字
保留字是系统中已经使用名字;
标识符是你起的名字;
我们的标识符不能和保留字取一样的名字。
#保留字打印,可打印出当前版本所有的保留字
import keyword
print(keyword.kwlist)
5.变量
name='苏沐'
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)
name='楚风'
print(name)
print('标识',id(name))#内存空间发生改变
6.数据类型
#整数int
n1=11
n2=0
n3=-11
print(n1,type(n1))
print(n2,type(n2))
print(n3,type(n3))
#整数可以表示为二进制、十进制、八进制、十六进制,默认为十进制
#二进制前加0b,八进制前加0o,十六进制前加0x/0X
print('十进制',11)
print('二进制',0b1011)
print('八进制',0o13)
print('十六进制',0xB)
#浮点型flost
a=3.14159
print(a,type(a))
n1=1.1
n2=2.2
print(n1+n2)
print(1.1+2.1)
#浮点数存储数据不精确,计算时有时候可能出现小数位数不确定的情况,可用decimal解决
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
#布尔类型bool(boolean)
#True为真=1,False为假=0
#布尔值可以转换为整数计算
f1=True
f2=False
print(f1+1,type(f1))
print(f2+1,type(f2))
#字符串类型str
#又称为不可变的字符序列
#可使用单引号‘’ 双引号“ ” 三引号 ''' ''' 或 """ """ 来定义
#单引号和双引号定义必须在同一行,三引号可不在同一行
str1='人生苦短,我用python'
str2="人生苦短,我用python"
str3='''人生苦短,
我用python'''
str4="""人生苦短,
我用python"""
print(str1,type(str1))
print(str2,type(str2))
print(str3,type(str3))
print(str4,type(str4))
7.数据类型转换
name='张三'
age=20
print(type(name),type(age))
print('我叫'+name+'今年,'+str(age)+'岁') # +为连接符,加类型转换即可成功输出
# str() 或 ' ' 将其他数据类型转换成字符串
a=10
b=3.14
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),type(str(a)),type(str(b)),type(str(c)))
# int() 转整,文字类和小数类字符串,无法转换成整数 ;浮点数转换成整数,抹零取整
s1='11'
f1=11.1
s2='11.11'
f2=True
s3='hello'
print(type(s1),type(f1),type(s2),type(f2),type(s3))
print((int(s1)),type(int(s1)))#字符串为整数数字串,可转
print(int(f1),type(int(f1))) #截整数部分
# print(int(s2),type(int(s2))) 报错,说明小数串不可转
print(int(f2),type(int(f2))) #布尔可转
# print(int(s3,type(int(s3)))) 报错,说明str转int只有整数数字串可转,文字类和小数串都不行
# float() 将其他数据类型转换成浮点数。文字类无法转换成浮点数;整数转浮点数末尾为.0
f1='3.14'
f2='11'
f3=10
f4=66.66
f5=True
f6='hello'
print(type(f1),type(f2),type(f3),type(f4),type(f5),type(f6))
print(float(f1),type(float(f1)))
print(float(f2),type(float(f2)))
print(float(f3),type(float(f3)))
print(float(f4),type(float(f4)))
print(float(f5),type(float(f5)))
# print(float(f6),type(float(f6))) 报错,说明字符串中如果是非数字串则不可转
8.注释
🌿三、运算符
1.input函数
temp=input('为啥要学python?')
print(temp,type(temp))
a=input('请输入一个整数:')
b=input('请输入另一个整数:')
print(type(a),type(b))
print(a+b) #输出为两个数字的连接
print(int(a)+int(b)) #输出结果为两个数相加
#或者
c=int(input('请输入一个数:'))
d=int(input('请输入另一个数:'))
print(c+d) #输出结果正确,为两数相加
2.运算符
算数运算符
##标准算数运算符 +-*/ //(整除)
print(1+1)
print(1-1)
print(2*2)
print(5/2)
print(5//2)
###注意:一正一负整除时,向下取整
print(-9/-4)
print(-9/4)
print(-9//-4)
print(-9//4) #-3
print(9//-4) #-3
##取余运算符 %
print(5%2)
###注意:一正一负取余有公式:余数=被除数-除数*商
print(9%-4) #-3
print(-9%4) # 3
##幂运算符 **
print(2**4)
赋值运算符
#二赋值运算符=
#执行顺序:从右到左
from re import I
m=7+11
print(m)
#支持链式赋值
a=b=c=11 #a,b,c指向同一块区域?
print(a,id(a))
print(b,id(b))
print(c,id(c))
print(a,b,c)
#支持参数赋值
## += -= *= /= %= //=
#支持系列解包赋值
i,j,k=10,20,30 #左右变量的个数和值的个数要对应
print(i,j,k)
#交换两个数的值
i,j=j,i #easy!!!
print(i,j)
布尔运算符
#布尔运算符 and or not(对布尔类型操作数取反) in(在字符串里面没有) not in
a=10
b=20
print(a==10 and b==20) #结果为True
print(a==10 or b==11) #结果为True
c=True
print(not c) #结果为False
ss='python'
print('h' in ss) #结果为True
print('a' in ss) #结果为False
比较运算符
#三比较运算符 比较运算符的结果为bool类型,即True或False
# > < >= <= != == is is not
a,b=7,11
print('a>b吗?',a>b)
print('a<b吗?',a<b)
#注意:比较对象的值是否相等用==,比较两个对象的标识id(内存地址)是否相等用 is
a=11
b=11
print(a==b) #结果为True
print(a is b) #结果为True
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2) #结果为True
print(lst1 is lst2) #结果为False
print(id(lst1))
print(id(lst2))
#is not 比较两个对象的id不相等为True
print(lst1 is not lst2) #结果为True
位运算符
#位运算符:位与& 位或| 左移运算符<< 右移运算符>>
#将数据转成二进制进行计算
print(4&8) #按位与 同为1时结果为1
print(4|8) #按位或 同为0时结果为0
print(4<<1) #左移一位高位溢出,低位补0, 十进制结果相当于原数*2
print(4<<2)
print(4>>1) #右移一位低位截断,高位补0, 十进制结果相当于原数/2
print(4>>2)
3.运算符优先级
()>算数运算符>位运算符>比较运算符>布尔运算符>赋值运算符
🌿四、语句和表达式
1.程序的组织结构
任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构三种基本结构组合而成。
2.顺序结构
程序从上到下按顺序执行,可单步调试查看。
3.对象的布尔值
Python一切皆对象,所有对象都有一个布尔值(变量也是对象)
可用内置函数bool() 获取对象的布尔值。
以下对象的布尔值皆为False:
False、数值0、None、空字符串、空列表、空元组、空字典、空集合
print(bool(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(dict()))) #空字典
print(bool(set())) #空集合
除上述对象外其他对象的布尔值均为True(注意:字符串若为空格串为True
4.分支结构(选择结构)
单分支if结构
num=60
s=int(input('请输入分数:'))
if num<=s:
s-=num
print('及格!分数超出及格线',num)
双分支if…else结构
num=60
s=int(input('请输入分数:'))
if num<=s:
s-=num
print('及格!分数超出及格线',s)
else:
s=num-s
print('不及格!离及格还差',s)
多分支if…else…else结构
上述结构中的 else: 可写可不写
num=int(input('请输入你的成绩:'))
if num>=90 and num<=100: #可写为90<=num<=100
print('优秀')
elif num<90 and num>=60:
print('良好')
elif num<60 and num>=0:
print('不及格')
else:
print('数据有误,上天了!')
注意:在python中,可以用连续的大于小于号确定范围,如10>a>=9,而在其它语言中一般不行
if语句的嵌套
count=input('您是会员吗?yes/no')
num=float(input('请输入您的消费金额:'))
if count=='yes':
if num>=1000:
print('打八折,共花费金额为:',num*0.8)
elif 500<=num<1000:
print('打九折,共花费金额为:',num*0.9)
else:
print('不打折,共花费金额为:',num)
else:
print('不打折,共花费金额为:',num)
条件表达式
条件表达式为if…else…的缩写。
如果判断条件为真,返回x,为假返回y
#比较两个整数的大小
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
print((str(a)+'大于'+str(b)) if a>b else (str(a)+'小于'+str(b)))
5.pass空语句
pass语句什么都不做,只是一个占位符;
在搭建语法结构,还没想好怎么写代码的时候使用:
如:if条件句,for-in循环体,函数体内
um=int(input('请输入你的成绩:'))
if num>=90 and num<=100:
pass
elif num<90 and num>=60:
pass
elif num<60 and num>=0:
print('不及格')
🌿五、循环结构与流程控制语句
1.range()函数的使用
作用:用于生成一个整数序列。
ran=range(1,10,2)
print(ran) #直接无法打印输出
print(list(ran)) #输出ran中的整数序列
#可用in not in判断指定整数是否在序列中
print(10 in ran)
注意:==不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,仅仅需要存储start,end和n,只有当用到range对象时,才会去计算序列中的相关元素
2.while循环
用于次数不固定的循环。
#求1到100之间的偶数之和
num=1
sum=0
while num<=100:
if num%2:
sum+=num
num+=1
print(sum)
注意:python中没有自增自减运算符,可以编译通过但不起作用。
3.for-in循环
for-in遍历的对象必须为可迭代对象;
for a in 'hello':
print(a)
for b in range(9):
print(b)
#求100到999之间的水仙花数:个位三次方+十位三次方+百位三次方=原数
for num in range(100,1000):
a=num%10
b=num//10%10
c=num//100
if(a**3+b**3+c**3==num):
print(num)
循环体内不需要访问自定义变量,可以将自定义变量替代为下划线_。
for _ in range(5):
print('我爱python!')
4.break、continue与else语句
break
用于结束循环,通常与if一起使用
a=0
while a<5:
str1=input('请输入密码:')
if str1=='6666':
print('密码正确!')
break
else:
print('密码不正确')
a+=1
continue
不执行接下来的语句,结束当前循环,进入下一次循环,通常与if一起使用。
#输出50以内5的倍数
for num in range(1,50):
if num%5!=0:
continue
print(num)
else
#三次机会猜密码
for num in range(3):
str=input('请输入密码:')
if str=='6666':
print('密码正确!')
break
else:
print('密码不正确!')
else:
print('抱歉,机会已用尽!')
num=0
while num<3:
str2=input('请输入密码:')
if str2=='6666':
print('密码正确!')
break
else:
print('密码不正确!')
num+=1
else:
print('抱歉,机会已用尽!')
5.嵌套循环
#输出三行四列的矩阵*
for i in range(1,4):
for j in range(1,5):
print('*',end='\t') #不换行输出
print() #换行
#输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(j,'*',i,'=',i*j,end='\t')
print() #换行
6.二重循环中的break和continue
二重循环中的break和continue用于控制本层循环而对外层循环没有影响。