目录
1.课程回顾
2.Pycharm常用快捷键
注释
3.函数
4.变量
5.核心数据类型
5.1空值对象None
5.2整型int
5.3浮点型float
5.4字符串str
5.5复数complex
5.6布尔bool
6.数据类型转换
7.算数与增强运算符
8.练习
Python:免费、开源、跨平台、动态、面向对象的编程语言
执行方式:交互式(测试);文件式(项目)
执行过程:源代码 — 编译 → 字节码 — 解释 → 机器码
/-------------1次----------/---------每次--------------/
移动到本行开头:home键
Shift + home键可以选中光标所在位置到本行开头
移动到本行末尾:end键
Shift + end键可以选中光标所在位置到本行末尾
注释代码:Ctrl + /
复制行: Ctrl + d
选择列: 鼠标左键 + Alt
移动行: Shift + Alt + 上下箭头
智能提示:Ctrl +Space
重新格式化代码:Ctrl +Alt +L
注释是给人看的,通常是对代码的描述信息。
单行注释:以#号开头
多行注释:三引号开头,三引号结尾
函数表示一个功能,函数定义者是提供功能的人,函数调用者是使用函数的人
例如:
print(数据)作用:将括号中的内容显示到终端
变量 = input("需要显示的内容")作用:从终端中获取输入的信息,存到程序(变量)
定义:变量是关联一个对象的标识符。
命名:只包含数字、字母、下划线,且不能其数字开头;不能使用关键字命名(蓝色),否则发生语法错误。
建议命名:字母小写,多个单词以下划线隔开。(见名知意)
赋值:创建一个变量或改变一个变量关联的数据。
语法:变量名 = 数据
变量名1 = 变量名2 = 数据
变量名1,变量名2 =数据1, 数据2
在python中变量没有类型,但关联的对象有类型。
通过type函数查看。
1.表示不存在的特殊对象
2.作用:占位和解除与对象的关联
# 解除变量与对象的关联
name = "苏大强"
name = None
# 使用None占位,此时的性别还未知,随着程序的运行才知道,但要先占位
gender = None
1.表示整数,包括正数、复数、0
如:-5,100,0
2.字面值:
十进制:5
二进制:0b 开头,后跟0或1
八进制:0o 开头,后跟0~7
十六进制:0x 开头,后跟0~9,A~F,a~f
print(0b10) #2,输出是以十进制
3.小整数对象池:CPython中整数-5~256,永远存在小整数对象池中,不会被释放并可重复使用
池是一种很重要的编程思想。池的优化可以提高内存利用率。
a = 1
b = 1
c = 1000
d = 1000
print(a is b)
print(c is d)
"""
在文件式python中的输出结果是:
True
True
在交互式python中的输出结果是:
True
False
此时a和b有池的优化,而c和d则没有池的优化
"""
1.表示小数,包含正数、负数、0.0
2.字面值:
小数:1.0 , 2.5
科学计数法:e/E(正负号)指数,简洁明确地表示过大或过小的值
1.23e-2(等同于1.23*10^-2)
用来记录文本信息(文字信息)
字面值:双引号,单引号
a = 10
print(a) # 打印变量
print("a") # 打印字符串
由实部和虚部组成的数字:虚部都是以 j 或 J 结尾
字面值:1j 1+1j 1-1j
布尔是用来表示真和假的类型
True :表示真(条件满足或成立),本质是1
False :表示假(条件不满足或不成立),本质是0
命题是指带有判断性的陈述句,命题又分为真命题和假命题。
比较运算:< 、>、 <= 、>=、 ==、!=
结果都是布尔类型
print(1>2) # False
逻辑运算:判断两个布尔值之间的关系,与(and)、或(or)、非(not)
# 与(and):表示并且(都得满足)的关系,一假俱假
print(True and True) # True
print(False and True) # False
print(True and False) # False
print(False and False) # False
# 或(or):表示或者(一个满足就行)的关系,一真俱真
print(True or True) # True
print(False or True) # True
print(True or False) # True
print(False or False) # False
# 非:取反
print(not True) # False
# 练习:判断一个年份否是闰年(年份可以被4整除但不能被100整除)
# 闰年:True;平年:False
year = int(input("请输入一个年份:"))
result = (year % 4 == 0 and year % 100 != 0) or year % 400 == 0
# 小括号可要可不要,本来就是从左往右运算
print(result)
补充:短路逻辑
# 控制台会出现什么?
num = 1
re = num + 1 > 1 and input("请输入:") == 'a'
# 请输入:
num = 1
re = num > 1 and input("请输入:") == 'a'
# 进程已结束,退出代码0
# and发现False,就已经有了结论,后续条件不再判断。
# 启发:尽量将复杂耗时的判断放在后面
num = 1
re = num + 1 > 1 or input("请输入:") == 'a'
# 进程已结束,退出代码0
# or 发现了True,就有了结论,后续条件不再判断。
# 启发:尽量将复杂耗时的判断放在后面
转化为整型:int(数据)
转换为浮点型:float(数据)
转换为字符串:str(数据)
转换为布尔:bool(数据)
结果为False: bool(0) bool(0.0) bool("") bool(None)
混合类型自动升级:
1 +2.14 返回的结果是:3.14
1 +3.0 返回结果是:4.0
算法运算符:加减乘除(+ - * /)
除法取整://
除法取余数:%
获取整数的个位:除以10后取余数,如27 % 10
幂运算:**
增强运算符(与算数运算符相联系)
number = 200
print(number +1)
print(number) # 200
number = 200
number = number +1 % 等同于:number+=1
print(number) # 201
1.在控制台中录入一个商品单价,再录入一个数量,最后获取金额,计算应该找回多少钱
price = input("请输入商品单价:")
quantity = input("请输入商品数量:")
total = input("请输入金额:")
price = float(price)
quantity = int(quantity)
total = float(total)
result = total - price * quantity
msg = "应找回{}元钱".format(result)
print(msg)
2.在控制台中获取分钟,然后获取小时和天,最后计算总秒数并输出
minute = float(input("请输入分钟数:"))
hour = float(input("请输入小时数:"))
day = float(input("请输入天数:"))
result = minute * 60 + hour * 60 ** 2 + day * 24 * 60 * 60
msg = "总秒数为{}秒".format(result)
print(msg)
3.古代的秤一斤是16两,在控制台获取两,计算是几斤几两。
weight = input("请输入重量的两数:")
weight = int(weight)
jin_weight = weight // 16
liang_weight = weight % 16
msg = "重量为{}斤零{}两".format(jin_weight, liang_weight)
print(msg)
4.在控制台中录入距离、时间、初速度,计算加速度。(不怕变量名长,但是一定要见名知意)
str_distance = input("请输入距离:")
str_time = input("请输入时间:")
str_initial_speed = input("请输入初速度:")
distance = float(str_distance)
time = float(str_time)
initial_speed = float(str_initial_speed)
acceleration = 2 * (distance - initial_speed * time) / time ** 2
msg = "加速度为{}".format(acceleration)
print(msg)
5.在控制台中录入一个四位整数,计算每位相加的和并输出(如:1234,计算1+2+3+4,输出10)
number = int(input("请输入一个四位整数:"))
first_num = number // 1000
second_num = (number - first_num * 1000) // 100
third_num = (number - first_num * 1000 - second_num * 100) // 10
fourth_num = number % 10
total = first_num + second_num + third_num + fourth_num
msg = "每位相加的和为:{}".format(total)
print(msg)
str_number = input("请输入一个四位整数:")
first_num = int(str_number[0])
second_num = int(str_number[1])
third_num = int(str_number[2])
fourth_num = int(str_number[3])
total = first_num + second_num + third_num + fourth_num
msg = "每位相加的和为:{}".format(total)
print(msg)
# 用增强运算符——流程图更简单
number = int(input("请输入一个四位整数:"))
total = number % 10 # 累加个位
total += number // 10 % 10 # 累加十位
total += number // 100 % 10 # 累加百位
total += number // 1000 # 累加千位
msg = "每位相加的和为:{}".format(total)
print(msg)
6.已知加速度、初速度和时间,计算距离
accelerate = float(input("请输入加速度:"))
initial_speed = float(input("请输入初速度:"))
time = float(input("请输入时间:"))
distance = initial_speed*time+0.5*accelerate*time**2
msg = "计算出的距离为:{}".format(distance)
print(msg)
7.温度转换:摄氏度 = (华氏度 - 32)/1.8;华氏度 = 32+1.8*摄氏度;开氏度 = 摄氏度 + 273.15
# 获取华氏温度计算响应的摄氏温度
Fahrenheit = float(input("请输入华氏温度:"))
Celsius = (Fahrenheit- 32)/1.8
print("相应的摄氏温度为:",Celsius)
# 获取摄氏温度,计算相应的华氏温度和开始温度
Celsius = float(input("请输入摄氏温度:"))
Fahrenheit = 32 + Celsius*1.8
Degrees = Celsius + 273.15
print("相应的华氏温度为:",Fahrenheit)
print("相应的开氏温度为:",Degrees)
8.在控制台获取总秒数,计算几小时零几分钟零几秒。
seconds = int(input("请输入秒数:"))
if seconds < 60:
msg = "时间为{}秒".format(seconds)
elif 60 <= seconds < 3600:
minutes = seconds // 60
seconds -= minutes * 60
msg = "时间为{}分零{}秒".format(minutes, seconds)
else:
hours = seconds // 3600
minutes = (seconds - hours * 3600) // 60
seconds -= (hours * 3600 + minutes * 60)
msg = "时间为{}小时零{}分零{}秒".format(hours, minutes, seconds)
print(msg)