第一章,计算机基础
组成
硬件
存储设备
-
内存
瞬时存储、断电、程序退出、数据消失。 传输速度很快。
-
外存
永久存储。 传输速度相对较慢。 存储单位: 位bit:存储1个0或1个--b 字节byte:--B 1B=8b KB -- K 1KB=1024B MB --M 1MB=1024KB GB--G TB
各部分协同工作的功能完成。输入设备-存储设备(内存)–CPU–(运算器)— 存储设备(内存)–输出设备,外存
-
软件
系统软件 操作系统 驱动程序 应用软件 单机软件:记事本,计算器 网络软件:QQ、微信,王者荣耀
程序
生活中的程序:完成一个任务而进行一系列有序的动作集 计算机中的程序:有序指令集,由计算机完成一个功能 编程语言: 机器语言:010100001111 速度快,可读性差,维护性好,可扩展性好 汇编语言:助记符 add a,b 可读性提高,接近硬件,速度相对较快 冗长程序。对计算机硬件组成要求高。 高级语言:接近人类语言 可读性、维护性和扩展性都很好。 速度相对较慢。 C\C#\Java\Python 解释语言:源代码–解释器–边解释边执行 Python ,JavaScript—【即时编译】 编译语言:源代码–编译器–可执行文件 C,Java —【文献翻译】
第二章、Python简介
为啥学Python?
很受欢迎,简单,应用领域广(办公自动化,web,数据采集、数据分析、人工智能、科学计算 算), 三个方向的基础课。 Python发展历程: Python之父:Guido 吉多 推荐使用3.x版本
特点:
简单,优雅 跨平台,跨语言 强大的库 免费开源 解释型 应用广 交互型 支持面向对象:C#,Java,Python,JavaScript 面向过程:C
搭建环境
: 安装Python解释器 IDE:PyCharm
第三章、Python基础语法
3.1print输出函数
print('hello,python') #print()打印到控制台xxx #打印各种数据 print(123) print(3.5) print(True) print("人生苦短,我用python") #控制是否换行 end='' print("hello",end=' ') print('world') #转义字符 # 当我们输入回车等控制键时,Tab不能显示的字符可以使用 # \n 回车换行 # \t Tab键 ,相当于4个空间 print('a',end='\n') print('b') print('hello\npython') print('hellopython') print('hell\tpython') #\,',",只是想不转义,需要在前面添加\ print('\\') #输出\ print('\'') #输出‘
#以原字符的方式输出,前面r或R
print(r'\nbc')
print(r'E:\BaiduNetdiskDownload\hello beda音频')
#双引号中使用单引号,单引号中间使用双引号
print("小明对妈妈说:'我饿了'")
#python支持各种特殊符号
print('웃')
#以,号分隔,后面会讲其实是可变的位置参数,输出内容间会以空格分开
print('hello','python','java','c')
3.2注释
# 注释是来解释代码的,给程序员看的
# 解释器不处理,不会影响程序的效率
# 多多益善
# 分类:单行注释和多行注释
# 单行注释 :#+文字
print('hello') #控制台输出内容
# 多行注释 三个单引号或者三个双引号
''' 多行注释1 多行注释2 多行注释3 '''
"""
多行注释1
多行注释2
多行
""
3.3变量
我有20元钱,花了12元,问还剩多少钱? 变量的本质:就是内存中的一块存储空间 变量的作用:存储数据 变量简单的理解为程序中其值可以发生可变的量 变量三要素: 变量名:存储空间的名字,快速地找到其中的数据 数据类型:存储数据的类型,分配空间 变量值:存储数据 数据类型: 基本数据类型 数值型 整型:int 浮点型:小数 float 布尔型 bool—boolean 真True 假False 字符串型 str:0~多个字符组成的串 ,放在单引号或双引号或者三引号之间 选择数据类型:是否有运算需求,有的话选数值类型,没就是字符型 举例:余额:1000,000,000—float 身份证号,电话号码,密码–str
#数据类型
#整型 int
age = 16
print(age,type(age),id(age))
# 其它进制表示
i = 0b100 # 二进制0b开头
i2 =0o10 # 八进制0o开头
i3 =0x10 # 十六进制0x开头
print(i3,type(i3))
# float
price = 3.5
print(price,type(price))
price = 2
print(price,type(price))
#bool
flag = True
print(flag,type(flag))
#str
s1='hello'
s2=""
#三引号支持换行
s3='''h e l l o'''
s4=""" python, java, c """
print(s1,type(s1))
#个人信息
name = '张飞'
age = 45
print("我的名字是"+name)
print("我的年龄是"+str(age)) #字符串和数值不能直接拼接,需要使用str()将数值类型转换成str类
型
print('年龄是',age)
复合数据类型/引用数据类型(后面讲到) 数据类型之间的转换 str() 把其它类型的数据转换成str
i = 12
f = 2.5
b = True
print('int转换后'+str(i),type(str(i)))
print('float转换后'+str(f),type(str(f)))
print('bool转换后'+str(b),type(str(b)))
int() 把其它类型的数据转换成int 结论:小数串和非数值串不能转换成int
f = 3.1
b = True
s1 = '12'
s2 = '12.5'
s3 = 'hello'
print(int(f),type(int(f))) #3 float类型转换成int,小数部分直接截断
print(int(b),type(int(b))) #False=0 True=1
print(int(s1),type(int(s1))) #12 整数串可以正常转换
#ValueError: invalid literal for int() with base 10: '12.5'
# print(int(s2),type(int(s2))) #小数串 转换成int,会报错
#ValueError: invalid literal for int() with base 10: 'hello'
# print(int(s3),type(int(s3))) #非数值串,不能转换成int
float() 把其它类型的数据转换成float 非数值串不能转换成float
i = 12
b = True
s1 = '12'
s2 = '12.5'
s3 = 'hello'
print(float(i),type(float(i))) #12.0
print(float(b),type(float(b))) #True=1.0
print(float(s1),type(float(s1))) #12.0
print(float(s2),type(float(s2))) #12.5
#ValueError: could not convert string to float: 'hello'
# print(float(s3),type(float(s3))) #非数值串,不能转换成float
bool() 把其它类型的数据转换成bool
i = 10
f = -1
s = ''
print(bool(i),type(bool(i))) # 0=False 其它都是True
print(bool(f),type(bool(f))) # 0=False 其它都是True
print(bool(s),type(bool(s))) # 空串是False ,其它都是true
总结:字符串拼接的时候,需要把其它类型转换成字符串,使用str() 数值计算的时候,需要把其它类型转换成数值,使用int()或float() 逻辑判断的时候,需要把其它类型转换成布尔,使用bool() —使用较少,后面会直接使用变量 来判断 变量名: 命名规范: 1、可以使用字母、数字 和下划线(_),不能以数字开头 2、不能使用关键字或保留字(创建python语言时,已占用了某些单词,已具有特殊的含义) 3、区分大小写 name Name 4、见名知意 name brand age price i 5、多个单词用_分隔 stu_name phone_price book_author bookAuthor 输入输出 格式化输出 1、使用个数可变的位置参数 2、使用+连接符,+的左右均为str类型 3、%占位符:’’%() 4、{0}占位符:’’.format() 5、f’{变量名}’ 输入 变量 = input(‘提示语:’)
第四章 运算符
4.1算术运算符
a = 3
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b) #1.5 /数学中的除法
print(a//b) # 1 //整除(结果是整数)
print(a%b) # 1 % 模/求余
# 幂 2*2*2
print(2**3)
# ++ -- python中没有
# 今天周日,12天之后是周几?
weekday = int(input('今天周几?'))
weekday2 = (weekday +12) % 7
print('12天之后是周',weekday2)
print('-------------练习:分解整数--')
# %求余 可以拿到低位上的数字 //整除 可以拿到高位上的数字
# 分解两位数 34 十位是3,各位是4
num = 34
ge = num % 10
shi = num // 10
print(f'{
num}的个位数字是{
ge},十位数字是{
shi}')
print()
## 分解三位数 456
num1=456
ge = num1 % 10
bai = num1 // 100
# shi = num1 // 10 % 10 # 45 6 -- 4 5
shi = num1 % 100 // 10 # 456-- 4 56--5 6
print(f'{
num1}的个位数字是{
ge},十位数字是{
shi},百位数字是{
bai}')
4.2赋值运算符
从右往左进行 支持链式赋值 解包赋值,左右两边个数要一致 复合赋值运算符:赋值+算术 += -= *= /= //= %=
# 从右往左进行
num = 12
num = num + 1
# num = input('请输入:')
print(num)
# 支持链式赋值
# a = 1
# b = 1
# c = 1
a = b = c = 1
print(a,b,c)
print(id(a),id(b),id(c))
# 解包赋值 左右两边个数要一致
# 交换两个数 m=5 n=3 ----》m=3 n=5
# 交换算法 temp
print('-------------')
m = 5
n = 3
temp = m
m = n
n = temp
print(m,n)
print('------------')
m = 5
n = 3
sum = m + n
m = sum - m
n = sum - n
print(m,n)
print('--------只在python中有效--------')
m = 5
n = 3
m,n=n,m
print(m,n)
# 复合赋值运算符 赋值+算术 += -= *= /= //= %=
print('-----------')
x = 2
x += 1 # x = x +1
print(x)
4.3关系运算符
表示两个变量之间的大小关系的
< >= <= == !=
# 关系运算符 关系表达式的结果是bool
a = 23
b = 12
print(a>=b) #True
print(a<=b) #False
print(a!=b)
print(a==b) # ==表示等于
# 通常不比较float数据,因为小数在内存存储不精确
print(1.1+2.2)
print(1.1+2.2==3.3) #False
# == 比较值
# in / not in 在/不在
print()
s = 'hello'
print('k' in s)
print('k' not in s)
4.4逻辑运算符
主要是连接多个条件(布尔表达式–关系表达式、布尔变量) and 逻辑与:同真则真,遇假则假 or 有真则真,同假则假 not 取反
# and 同真则真,遇假则假
a = 8
b = 4
print( a >1 and b >2) # True and True
# or 有真则真,同假则假
print(a >10 or b >20)
# not 取反
print(not(a>1))
print(True or True and False)
#结果是True,所以and比or的优先级高
4.5位运算
按位与 & 按位或 | 异或 ^ 左移 右移
# 位运算
m = 5
n = 12
print(m&n)
print(m|n)
print(m^n)
#结论:对一个数异或两次,就可以获取原数字本身
#交换两个数
print('------------')
a = 23
b = 12
temp = a ^ b #a^b==b^a
a = temp ^ a
b = temp ^ b
print(a, b)
print('-----------')
#>> 右移 相当于整除,右移1位相当于除以2 ,右移n位相当于除以2的n次方
print(5>>1)
print(5>>2)
#<< 左移 相当于乘法 左移1位相当于乘以2,左移n位相遇乘以2的n方
print(5<<1) # 10
print(5<<2) # 20
4.6运算符的优先级
小括号>算术运算>位运算>关系运算>逻辑运算>赋值运算 先运算 ,再比较 ,再链接,最后赋值 建议大家,把优先高的放在小括号中,这样的代码可读性好
f = not (35 > (3 << (1 + 1)))
print(f) #False
第五章 程序流程结构
5.1 算法
算法就是解决问题的步骤。 算法不唯一,但是有优劣。评价维度:时间复杂度,空间复杂度。 表示算法的方式有很多,最主要的一种就是流程图。 符号:圆角矩形 —程序的开始/结束 平行四边形–输入或输出 直角矩形–处理步骤(运算,赋值) 菱形—判断(布尔表达式) 流程线 计算机专家发现,不管多么简单或多么复杂的算法都可以由顺序结构,选择结构,循环结构组合而 成。
5.1 顺序结构
从左往右,从上往下依次执行 写出来的代码都会执行
5.2 选择结构 /条件结构
场景:需要做出选择/做出判断,才知道如何执行 1、单分支结构
if 条件:
代码块
语法: 1)条件:结果只要是布尔值就行,所以也叫布尔表达式。可以是变量,关系表达式,逻辑表达式 bool(变量)–0,0.0,空字符串、空字典,空集合,空列表等返回false,其它都返回true 2)代码块:可以是赋值,运算,流程结构等 3)python靠缩进表达代码的层次关系,缩进一般使用tab键 执行顺序: 先判断条件,如果条件为true,则执行代码块。否则不执行代码块 案例:
aply = input("笔试通过了吗?")
if aply == 'y':
print('明天参加面试')
# 输入三个数,求最大值
# a b c
# max=a
a = int(input('请输入一个数:'))
b = int(input('请输入一个数:'))
c = int(input('请输入一个数:'))
max = a
if max<b:
max=b
if max<c:
max=c
print('最大值是',max)
2、双分支结构 语法:
if 条件:
代码块1
else:
代码块2
执行顺序:先判断条件,条件为true,则执行代码块1,否则执行代码块2 案例:
# 模拟以下QQ登录
# 正确的账号:QQ :123456 密码:123
account = input("请输入QQ号:")
pwd = input('请输入密码:')
if account == '123456' and pwd == '123':
print('登录成功')
else:
print('账号密码不匹配')
简化写法:条件表达式
表达式1 if 条件 else 表达式2
执行顺序:条件为true,表达式的结果就是表达式1,否则整个表达式的结果就是表达式2
# 输入一个数,判断奇偶性
num = int(input('请输入一个整数'))
s = '奇数' if num%2==1 else '偶数'
print(s)
print('奇数' if num%2==1 else '偶数')
## 输入一个数,判断奇偶性
## 模拟取款,输入取款金额,如果余额够,显示余额;否则提示余额不足。
3、多分支结构 3.1 多重if结构 语法:
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
else:
代码块4
执行顺序:先判断条件1,如果条件1为true,则执行代码块1 否则判断条件2,如果条件2为true,则执行代码块2 否则判断条件3,如果条件3为true,则执行代码块3 场景:一个维度连续区间的多路分支 案例:
# 给成绩评级 60以下差,60-80中 80-90良,90以上优
# 一个维度(成绩),连续区间
score = int(input('请输入成绩'))
if 0<score < 60: # 0-60
print('差')
elif score<=80: #60-80
print('中')
elif score<=90: #80-90
print('良')
else:
print('优')
# 或者
if 100>=score > 90:
print('优')
elif score>=80:
print('良')
elif score>=60:
print('中')
else:
print('差')
注:python中关系表达式允许连写0<score < 60 练习
## 猜数游戏 输出结果:大了,小了,对了
## 根据年龄判断年龄段(0-6婴幼儿,6-12少年,12-18青年,18以上成年)
3.2 嵌套if结构 语法:
if 条件1:
if 条件2:
代码块1
else:
代码块3
else:
代码块2
执行顺序: 场景:多个维度的多路分支 案例:
# 超市活动 如果不是会员,消费满100打9折;如果是会员,消费满200打7折,不满200打8折。
# 根据会员及消费金额输出应付金额
# pass 什么都不做,只是一个占位符,代替需要写的语句
# 进行代码建构的时候,还不想写代码,可以使用pass先代替
isVip = input('是否是会员?')
sumMoney = int(input('请输入消费金额:'))
discount=1
if isVip=='y':
if sumMoney>=200:
discount=0.7
else:
discount=0.8
else:
#不是会员
if sumMoney>=100:
discount=0.9
print(f'应该支付{
sumMoney*discount}')
3.3 switch在python没有
5.3 循环结构
场景:有重复做的事情(可以是一样的事情,也可以是有规律的事情) 循环的特点: 循环操作:重复在做的事情 循环条件:循环继续的条件,循环结束的条件 如果循环永不结束,就叫死循环。初学程序的时候,要避免死循环。 编码时,循环条件会借助循环变量来表达。 如,计数器count=0(循环变量的初始化) count+=1(循环变量的更新) count<=10(循环条 件) 5.3.1 while循环 语法: 循环变量的初始化 while 循环条件: 循环操作 循环变量的更新 特点:先判断,再执行 如果循环条件一开始就不成立,循环操作可能一次都不执行 适合循环次数不固定的情况 案例
# 输出10个* # 循环操作:输出1个* # 循环条件:count=1 count<=10 count = 11 while count<=10: print('*') count+=1 # 输出1-100之间的整数 # 循环操作:输出一个数 print(i) # 循环条件:i=[1,100] i = 1 while i<=100: print(i) i+=1 # 输出1-100之间的偶数 # 输出100-1之间整数 # 求和1-100 # 循环操作:1+2 +3 +4 +。。。+100 ---> sum+=num --累加求和 # 循环变量 num=[1,100] sum=0 就是存储每一次计算的和 print('--------------') num = 1 sum = 0 while num<=100: sum 标签:
j6d系列矩形电连接器j6w