1 基础知识
pycharm 常用快捷键
-
移动到本行开头:home 键
-
移动到本行末尾:end 键
-
注释代码:ctrl + /
-
复制行:ctrl +d
-
删除行:shift + delete
-
选择列:shift + alt +鼠标左键(alt +鼠标左键 复制光标)
-
移动行:shift + alt + 上下箭头
-
代码格式化:ctrl+alt+l
注释:给人看的,通常是对代码的描述信息。
-
单行注释:以#号开头。
-
多行注释:三引号开头,三引号结尾。
函数:表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。例如:
-
print(数据) 作用:将括号中的内容显示在控制台中
-
变量 = input(“需要显示的内容”) 作用:将用户输入的内容赋值给变量
""" 程序标题:汇率转换器 """ # 1 获取数据 usd = float(input("Please enter US dollars")) # 2 逻辑计算 cny = usd * 6.473 # 3 结果输出 print(str(usd) + "dollers = " + str(cny) + "RMB")
""" 函数 print 1.字面意思:打印(内容) 2.作用功能:将程序内容显示到终端 3.使用语法:print("内容") """ print("hello world")
""" 练习 1: 在终端中显示古诗“登高” """ print(" 登高 ") print(" 作者:杜甫 ") print(" 风急天高猿啸哀,渚清沙白鸟飞回。") print(" 无边落木萧萧下,不尽长江滚滚来。") print(" 万里悲秋常作客,百年多病独登台。") print(" 艰难苦恨繁霜鬓,潦倒新停浊酒杯。")
""" 函数 - input 1.字面含义:输入结果=输入东西("提示信息") 2.功能作用:通过界面输入数据与程序交互 3.语法格式:name = input("please") """ name = input(" please ") print("hello " + name)
""" 练习 2:判断英文句子成分:I kiss you 效果: 请输入 I kiss you 的主语:I 请输入 I kiss you 的谓语:kiss 请输入 I kiss you 的宾语:you 您输入的主语是:I,谓语是:kiss,宾语是:you """ subject = input("subject:") predicate = input("predicate:") object = input("object:") print("subject:" + subject + ";predicate:" + predicate + ";object:" + object)
2 变量及其内存图
变量
-
定义:关联一个对象的标识符。
-
命名:必须是字母或下划线开头,后跟字母、数字、下划线。不能使用关键字(蓝色),否则发生语法报错
-
建议命名:字母小写,多个单词以下划线隔开。class_name = “xxx”
-
赋值:创建一个变量或改变一个变量关联的数据。
-
语法:变量名 = 数据
变量名 1 = 变量名 2 = 数据
变量名 1, 变量名 2, = 数据 1, 数据 2
""" 变量 作用:在内存中操作数据 程序运行在哪里?--内存 程序(行为)在处理什么?--数据 语法:变量名称 = 数据 赋值号= : 把右边的数据地址复制一份给左边 python中的变量不存储数据本身,只存储它的地址, """ # 创建变量 name01 = "悟空" name02 = "八戒" # 修改变量 name02 = "唐僧" # 产生新数据 name03 = name02 + name01 # 传递数据地址 name04 = name03
""" 变量的内存图练习,说出打印结果 """ name_of_hubei_province = "湖北" name_of_hunan_province = "湖南" name_of_hunan_province = "湖南省" name_of_hunan_province = name_of_hubei_province print(name_of_hunan_province) # ?
del 语句
-
语法: del 变量名 1, 变量名 2
-
作用:用于删除变量(不是删除数据),同时解除与对象的关联.如果对象计数为0则释放对象。
-
自动化内存管理的引用计数:每个对象记录被变量绑定(引用)的数量,当为 0 时被销毁。
""" 删除 del """ name02 = name01 = "悟空" del name01 # 删除变量 数据存在(数据引用计数为0) del name02 # 删除数据 数据不存在(数据引用计数为0) #print(name02) 报错 变量不存在
""" 画出下列代码内存图,说出终端显示结果 """ name_of_beijing, region = "北京", "市" # 拼接后成为一个独立的数据,不受原数据发生的变化影响 name_of_beijing_region = name_of_beijing + region region = "省" print(name_of_beijing_region) # 北京市 del name_of_beijing print(name_of_beijing_region) # 北京市
3 核心数据类型
在 python 中变量没有类型,但关联的对象有类型。
整形 int
-
表示整数,包含正数、负数、0。如: -5, 100, 0
-
字面值:十进制:每位用十种状态计数,逢十进一,写法是 0~9。
二进制:每位用二种状态计数,逢二进一,写法是 0b 开头,后跟 0 或者 1。
八进制:每位用八种状态计数,逢八进一,写法是 0o 开头,后跟 0~7。
十六进制:每位用十六种状态计数,逢十六进一,写法是 0x 开头,后跟 0~9,A~F,a~f
浮点型 float
-
表示小数,包含正数、负数,0.0。
-
字面值:小数:1.0 2.5
科学计数法:e/E (正负号) 指数 1.23e-2 (等同于 0.0123) 1.23456e5(等同于 123456.0)
字符串 str:是用来记录文本信息(文字信息)。 字面值:双引号
布尔 bool:用来表示真和假的类型 True 表示真(条件满足或成立),本质是 1 False 表示假(条件不满足或不成立),本质是 0
数据类型转换
-
转换为整形: int(数据)
-
转换为浮点型:float(数据)
-
转换为字符串:str(数据)
-
转换为布尔:bool(数据) 结果为 False:bool(0) bool(0.0) bool(None)
-
混合类型自动升级:1 + 2.14 返回的结果是 3.14 ;1 + 3.0 返回结果是: 4.0
""" 核心数据类型 str int float 类型转换 结果 = 目标类型(待转数据) """ # 数据类型 # 1. 字符串str:存储文字 name = "悟空" str_number = "10" + "1" # 字符拼接(没有数学运算) print(str_number) # "101" # 2. 整形int:存储整数 int_number = 10 + 1 print(int_number) # 11 # "10" + 1 # 在Python语言中,不支持str与int直接+运算 # 3. 浮点型float:存储小数 float_number = 10.1 # 类型转换 # age = int(input("请输入您的年龄:")) # print("明年您" + str(age +1) + "岁了") # 1. str --> int result01 = int("3") # 3 # int --> str result02 = str(3) # 2. str --> float result03 = float("1.2") # float --> str result04 = str(1.2) # 3. int --> float result05 = float(15) # 15.0 # float --> int result06 = int(1.93) print(result06) # 1 向下取整 # 4. 字符串转换为其他类型时注意:该字符串必须是该类型的字符表达形式(长得像) # result07 = int("1.93") 不行 # result08 = float("abc") 不行 result09 = float("5") print(result09) # 5.0 print(12) # 可以直接打印数值类型 print("年龄是:" + str(12)) # 因为要按照固定格式显示,所以类型转换
""" 练习:在终端中输入商品单价、购买的数量和支付金额。 计算应该找回多少钱。 效果: 请输入商品单价:5 请输入购买数量:3 请输入支付金额:20 应找回:5.0 """ # 1. 获取数据 price = float(input("请输入商品单价:")) count = int(input("请输入购买数量:")) money = float(input("请输入支付金额:")) # 2. 逻辑计算 result = money - price * count # 3. 显示结果 print("应找回:" + str(result))
4 运算符
算术运算符
+ 加法 - 减法 * 乘法 / 除法:结果为浮点数 // 整除:除的结果去掉小数部分 % 求余 ** 幂运算
优先级从高到低: () ** * / % // + -
增强运算符
y += x 相当于 y = y + x;y -= x 相当于 y = y - x;y *= x 相当于 y = y * x;y /= x 相当于 y = y / x;
y //= x 相当于 y = y // x;y %= x 相当于 y = y % x;y * *= x 相当于 y = y * * x
比较运算符
< 小于;<= 小于等于;> 大于;>= 大于等于;== 等于;!= 不等于;
返回布尔类型的值;比较运算的数学表示方式:0 <= x <= 100
逻辑运算符:与 and ;或or,非not
短路运算:一但结果确定,后面的语句将不再执行。因此复杂运算判断放后面
身份运算符:语法: x is y ,x is not y
作用: is 用于判断两个对象是否是同一个对象,是时返回 True,否则返回 False。
is not 的作用与 is 相反
优先级高到低:算数运算符;比较运算符;增强运算符;身份运算符;逻辑运算符
""" 算数运算符 + - * / // % ** 增强运算符:在算数运算符基础上增加了对自身赋值的功能 += -= *= /= //= %= **= """ # 1. 算数运算符 number01 = 5 number02 = 2 # 幂运算 5 的 2次方 print(number01 ** number02) # 25 print(number01 // number02) # 2 print(number01 / number02) # 2.5 print(number01 % number02) # 1 # 2. 增强运算符 number03 = 10 number03 + 5 print(number03) # 10 number04 = 10 # number04 = number04 + 5 number04 += 5 print(number04) # 15
""" 练习1:在终端中输入一个疫情确诊人数再录入一个治愈人数, 打印治愈比例 格式:治愈比例为xx% 效果: 请输入确诊人数:500 请输入治愈人数:495 治愈比例为99.0% """ confirmed = int(input("请输入确诊人数:")) cure = int(input("请输入治愈人数:")) cure_rate = cure / confirmed * 100 print("治愈比例为" + str(cure_rate) + "%")
""" 练习2:古代的秤,一斤十六两。 在终端中获取两,计算几斤零几两。 效果: 请输入总两数:100 结果为:6斤4两 """ total_liang = int(input("请输入总两数:")) jin = total_liang // 16 liang = total_liang % 16 print("结果为:" + str(jin) + "斤" + str(liang) + "两")
""" 练习3: 匀变速直线运动的速度与位移公式: 位移 = 初速度 × 时间 + 加速度 * 时间的平方 / 2 已知(在终端中录入):位移、时间、初速度 计算:加速度 """ # (位移 -初速度 × 时间) * 2 / 时间 ** 2 = 加速度 s = float(input("请输入位移:")) v0 = float(input("请输入初速度:")) t = float(input("请输入时间:")) a = (s - v0 * t) * 2 / t ** 2 print(a)
""" 练习:在终端中输入一个四位整数,计算每位相加和。 例如:录入1234,打印1+2+3+4结果 效果: 请输入四位整数:1234 结果是:10 """ number = int(input("请输入四位整数:")) # unit01 = number % 10 # 个位 # unit02 = number // 10 % 10 # 十位 # unit03 = number // 100 % 10 # 百位 # unit04 = number // 1000 # 千位 # result = unit01 + unit02 + unit03 + unit04 # 建议 result = number % 10 result += number // 10 % 10 result += number // 100 % 10 result += number // 1000 print("结果是:" + str(result))
作业
作业 1. 三合一(文档/代码demo/图片) 2. 当天练习独立完成(exercise.py) 3. 画出下列代码内存图,说出终端显示结果 1) data01 = 100 data02 = 200 data03 = data01 + data02 data01 = 200 print(data03) # ? 2) bridegroom_name = "武大郎" bride_name = "潘金莲" temp = bridegroom_name bridegroom_name = bride_name bride_name = temp print("交换后的新郎:" + bridegroom_name) # ? print("交换后的新娘:" + bride_name) # ? 4. 根据父母身高,预测儿子身高. 步骤:获取父亲身高 获取母亲身高 显示儿子身高 公式:(父亲身高+母亲身高)*0.54 5. 温度转换器: 摄氏度 = (华氏度 - 32) 除以 1.8 在终端中录入摄氏度,计算华氏度 6. 根据工资计算个人社保缴纳费用 步骤:在终端中录入工资,根据公式计算,显示缴纳费用 公式:养老保险8% + 医疗保险2% + 3元 + 失业保险0.2% + 公积金12% 7. 阅读 链接:https://pan.baidu.com/s/1JYK5A91CvBg36IhRphiyrg 提取码:qitx 程序员的数学第一章 Python编程:从入门到实践 第一章
1.
""" 根据父母身高,预测儿子身高. 公式:(父亲身高+母亲身高)*0.54 """ # 1.获取数据 father_height = float(input("请输入父亲的身高(厘米):")) mother_height = float(input("请输入母亲的身高(厘米):")) # 2.逻辑计算 son_height = (father_height + mother_height) * 0.54 # 3.显示结果 # 因为需要字符串与数值拼接,所以数值转换为字符串str(son_height) print("预测儿子的身高是:" + str(son_height) + "厘米") # 因为直接输出数值,所以不用转换. print(son_height)
""" 温度转换器: 摄氏度 = (华氏度 - 32) 除以 1.8 (1)在终端中录入摄氏度,计算华氏度 摄氏度 * 1.8 +32= 华氏度 """ # 公式转换:华氏度 = 摄氏度 × 1.8 + 32 centigrade_degree = float(input("请输入摄氏度:")) fahrenheit_degree = centigrade_degree * 1.8 + 32 print("华氏度:" + str(fahrenheit_degree))
""" 根据工资计算个人社保缴纳费用 步骤:在终端中录入工资,根据公式计算,显示缴纳费用 公式:养老保险8% + 医疗保险2% + 3元 + 失业保险0.2% + 公积金12% """ salary_before_tax = float(input("请输入税前工资:")) social_insurance = salary_before_tax * (0.08 + 0.02 + 0.002 + 0.12) + 3 print("个人需要缴纳社保费用:" + str(social_insurance))