> 文档中心 > python基础(一)

python基础(一)


一、python简介

1.python定义

是一种免费、开源、跨平台、动态、面向对象的编程语言。

2.python的执行方式

第一种是交互式:
在命令行输入指令,回车即可得到结果。

>>> print("hello world!")hello world!>>> 1+2*37

第二种是文件式(常用):
将指令编写到.py文件,可以重复运行程序。
在这里插入图片描述

3.程序的执行过程

  1. 计算机只能识别机器码(1010),不能识别源代码(python)。
  2. 由源代码转变成机器码的过程分成两类∶编译和解释。
  3. 编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。
    优点∶运行速度快。
    缺点∶开发效率低,不能跨平台。
  4. 解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行。例如:Javascript。
    优点∶开发效率高,可以跨平台。
    缺点︰运行速度慢。
  5. python是解释型语言,但为了提高运行速度,使用了一种编译的方法,得到pyc文件,存储了字节码(特定于Python的表现形式,不是机器码)
    python执行过程:源代码–编译–>字节码–解释–>机器码
    注意:编译过程只存在于第一次,解释过程每次都要做。

4.解释器类型

  1. CPython (C语言开发)
  2. Jython (java开发)
  3. lronPython (.net开发)

二、数据基本运算

1.pycharm常用快捷键

如果想知道更多的快捷键,直接上网搜pycharm常用快捷键,有些快捷键会和自己电脑上的软件冲突。

  1. 注释代码:ctrl + /
  2. 复制行:ctrl+d
  3. 移动到本行开头:home键
  4. 移动到本行末尾:end键盘
  5. 选择列:鼠标左键+alt
  6. 移动行:shift + alt + 上下箭头
  7. 智能提示:Ctrl + Space

2.注释

是对代码的描述信息。

  1. 单行注释:以#号开头。·
  2. 多行注释:三引号开头,三引号结尾。
"""  汇率转换器"""   # 1.获取数据   str_usd = input("请输入美元:")   int_usd = int(str_usd)   # 2.逻辑处理   result = int_usd * 6.9   # 3.显示结果   print(result)

3.函数

表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。

  1. 变量 = input(“需要显示的内容”):将用户输入的内容赋值给变量。
  2. print(数据):将括号中的内容显示在控制台中。
"""   print   input"""# 字面意思∶输入功能# 作用∶从终端中获取输入的信息,存到程序(变量)中。name = input("请输入姓名∶")# 字面意思∶打印功能# 作用∶将括号中的内容﹐显示到终端。print(name)

4.变量

定义∶关联一个对象的标识符。
命名︰必须是字母或下划线开头,后跟字母、数字、下划线。
注意:不能使用关键字,否则出现语法错误,变量没有类型。

""" 变量:在内存中存储数据"""# 语法∶ 变量名称 = 对象# 例如∶name = "张无忌"print(name)# 变量名称∶真实内存地址的别名,注意见名知意# 赋值号∶将右边对象的地址复制给左边内存空间name = "赵敏"a01 = a02 = "周芷若"b01, b02 = "苏大强", "苏明玉"class_name = "1905"

变量内存图
在这里插入图片描述

练习:在控制台中获取两个变量,然后交换数据,最后显示结果。

a = input("请输入第一个变量:")b = input("请输入第二个变量:")# 交换版本1:所有语言通用思想# c = a# a = b# b = c# 交换版本2:适合pythona, b = b, aprint("第一个变量是:"+a)print("第一个变量是:"+b)运行结果:请输入第一个变量:1请输入第二个变量:2第一个变量是:2第一个变量是:1

5.核心数据类型

"""    核心数据类型"""# 1.Nonea01 = "苏大强"a01 = None  # 解除变量与数据的绑定关系sex = None  # 使用None占位# 2.整型intnum01 = 20# 二进制:0 1 10  11 100print(0b100) # 4# 八进制∶0 1...7 10 11 ...print(0o10) # 8# 十六进制∶0 -- 9  a(10) - f(15)print(0x10)# 16# 3.浮点数floatprint(1.5)# 科学计数法:表示过小或过大的值很明确print(0.00000000000000000000000000123)#1.23e-27# 4.字符串strprint("1.5")a = 10print(a) # 打印变量 10print("a") # 打印字符串 a

6.数据类型转换

"""    数据类型转换    运算符 算法运算符 增强运算符 运算符优先级"""# 1.数据类型转换# int float strstr_usd = input("请输入美元:")  # 输入的是字符串# 类型转换 str -->intint_usd = int(str_usd)result = int_usd * 6.9# str + 数值--> str + 数值# result = str(result)# print("结果是: "+result)print("结果是:"+str(result))# 2.算数运算符print(1+2)print(1-2.5)# 地板除(保留整数)print(5//2)# 商2# 余print(5 % 2)# 余1# 除print(5/2)# 2.5# 获取整数的个位print(27 % 10) # 7# 幂运算# 52次方:5*5print(5**2) #25# 53次方:5*5*5print(5**3) #125# 3.增强运算符number01 = 200print(number01 +1)print(number01) # 200number01 = 200# 变量加上另外一个数﹐再赋值给自身# number01 = number01 + 1# 累加(在自身基础上增加)number01 += 1print(number01) # 201# 4.运算符优先级# 算数运算符优先级从高到低︰# 1. ()# 2. **、# 3. */%//、# 4. +-优先级从高到低︰ 1. 算数运算符 2. 比较运算符  3. 快捷运算符  4. 身份运算符  5. 逻辑运算符

练习1:在控制台中,录入一个商品单价,再录入一个数量,最后获取金额,计算应该找回多少钱?

str_goods_price = input("请输入商品单价:")str_goods_num = input("请输入商品数量:")str_goods_totalprice = input("请输入金额:")int_goods_price = int(str_goods_price)int_goods_num = int(str_goods_num)int_goods_totalprice = int(str_goods_totalprice)change = int_goods_totalprice - int_goods_price * int_goods_numprint("找零:"+str(change))运行结果:请输入商品单价:2请输入商品数量:1请输入金额:4找零:2

练习2:在控制台中获取分钟,再获取小时,再获取天,计算总秒数?

mm = int(input("请输入分钟:"))hh = int(input("请输入小时:"))dd = int(input("请输入天数:"))result = dd*24*60*60+hh*60*60+mm*60print("总秒数是:"+str(result))运行结果:请输入分钟:2请输入小时:1请输入天数:1总秒数是:90120

练习3:古代的秤一斤是16两,在控制台中获取两,计算是几斤零几两?

weight = int(input("请输入两:"))w1 = weight // 16w2 = weight % 16print("总计:"+str(w1)+"斤零"+str(w2)+"两")运行结果:请输入两:33总计:2斤零1

练习4:在控制台中获取总秒数,计算几小时零几分钟零几秒。

#方法一total_second = int(input("请输入总秒数:"))hour = total_second // 3600minute = total_second % 3600 // 60second= total_second % 3600 % 60print("总计:"+str(hour)+"小时零"+str(minute)+"分钟零"+str(second)+"秒")#方法二total_second=int(input("请输入总秒数∶"))#商∶分钟数   余数∶零几秒second = total_second % 60#分钟∶总秒数 除以60 取商表示总分钟数#      总分钟数 除以60 取商表示总小时hour = total_second // 60 // 60#分钟∶总秒数 除以60  取商表示总分钟数#      总分钟数 除以60 取余数表示总小时剩下的分钟数minute = total_second // 60 % 60print("总计:"+str(hour)+"小时零"+str(minute)+"分钟零"+str(second)+"秒")运行结果:请输入总秒数:19120总计:5小时零18分钟零40秒请输入总秒数∶19120总计:5小时零18分钟零40

练习5:在控制台中录入距离,时间,初速度,计算加速度?
【匀变速直线运动的位移与时问公式∶加速度=(距离-初速度×时间)* 2/时间平方】

distance = float(input("请输入距离:"))time = int(input("请输入时间:"))initial_velocity = float(input("请输入初速度:"))accelerated_speed =  (distance - initial_velocity * time)* 2 / time ** 2print("加速度是:"+str(accelerated_speed))运行结果:请输入距离:100请输入时间:10请输入初速度:5加速度是:1.0

练习6:已知∶加速度,初速度,时间,计算距离?【加速度=(距离-初速度×时间)* 2/时间平方】

accelerated_speed = float(input("请输入加速度:"))initial_velocity = float(input("请输入初速度:"))time = int(input("请输入时间:"))distance = accelerated_speed * (time ** 2) / 2+initial_velocity * timeprint("距离是:"+str(distance))运行结果:请输入加速度:1.0请输入初速度:5请输入时间:10距离是:100.0

练习7:在控制台中录入一个四位整数,计算每位相加和,显示结果?

num = int(input("请输入四位数字:"))#方法1:分别计算出每位,再相加ge = num % 10# shi = num % 100 // 10shi = num // 10 % 10bai = num // 100 % 10qian = num // 1000result = ge+shi+bai+qianprint("结果是:"+str(result))# 方法2:累加每位# 个位result = num % 10# 累加十位result += num // 10 % 10# 累加百位result += num // 100 % 10# 累加千位result += num // 1000print("结果是:" + str(result))运行结果:请输入四位数字:1234结果是:10结果是:10

练习8:温度
摄氏度=(华氏度- 32)/ 1.8
华氏度=摄氏度* 1.8+32
开氏度=摄氏度+273.15
(1)在控制台中获取华氏度,计算摄氏度。
(2)在控制台中获取摄氏度,计算华氏度。
(3)在控制台中获取摄氏度,计算开氏度。

fagoting = int(input("请输入华氏度:"))centigrade = (fagoting - 32)/1.8print("摄氏度是:"+str(centigrade))centigrade = int(input("请输入摄氏度:"))fagoting = centigrade * 1.8+32kelvin = centigrade +273.15print("华氏度是:"+str(fagoting))print("开氏度是:"+str(kelvin))运行结果:请输入华氏度:1摄氏度是:-17.22222222222222请输入摄氏度:1华氏度是:33.8开氏度是:274.15

知识点补充

"""    bool    运算符 比较运算符 > < >=  <=  等于==  不等于!=   结果是: bool类型 逻辑运算符∶判断两个bool值关系 与 或 非"""# 1.bool类型# 取值∶(真,对的)True  (假,错的)False# 命题:带有判断性的陈逑句。# 例如∶我是个女生。 True# 1 > 2  -- >   Falseprint(1 > 2)   # False# 2.逻辑运算符# 与:一假俱假,表示并且的关系print(True and True) # True 都得满足条件,结论才满足条件print(False and True) # Falseprint(True and False) # Falseprint(False and False) # False# 或:一真俱真,表际或者(一个满足就行)的关系print(True or True) # True 都得满足条件,结论才满足条件print(False or True) # Trueprint(True or False) # Trueprint(False or False) # False# 非:取反print(not True) # False

练习:判断年份是否为闰年?【闰年:年份能被4整除,但是不能被100整除。也能被400整除。闰年是True】

year = int(input("请输入年份:"))result = year % 4 ==0 and year % 100 !=0 or year % 400== 0print(result)运行结果:请输入年份:2000True

注意:结果为False : bool(0)、bool(0.0)、bool(None)、bool(“”),bool里面有值都是True

# 问题∶控制台中会出现什么num = 1re = num > 1 and input("请输入∶") == "a"执行num > 1为Flase,程序退出,运行结果不会出现请输入。num = 1re = num + 1 > 1 and input("请输入∶") == "a"执行num + 1 > 1为True,程序继续执行后面的,运行结果出现请输入。num = 1re = num > 1 or input("请输入∶") == "a"print(re)执行num > 1为Flase,程序继续执行后面的,运行结果会出现请输入。num = 1re = num + 1 > 1 or input("请输入∶") == "a"print(re)执行num + 1 > 1为True,程序退出,运行结果不会出现请输入。总结:and发现False,就有了结论,后续条件不再判断。      or发现True,就有了结论,后续条件不再判断。启发:(现象称为短路逻辑),逻辑运算时,尽量将复杂(耗时)的判断放在后边。

知识点补充

"""    身份运算符"""a = 800b = 1000# id 函数,可以获取变量存储的对象地址。print(id(a))print(id(b))#falseprint(a is b) # is的本质就是通过id函数进行判断的。c = aprint(id(c))#trueprint(c is a)#trued = 1000print(d is b)

#文件式python是true,交互式python是false

#小整数对象池:CPython中整数-5至256,永远存在小整数对象池中,不会被释放,并可重复使用。
在这里插入图片描述
内存图
在这里插入图片描述

7.del语句

作用∶用于删除变量,同时解除与对象的关联,如果可能则释放。
自动化内存管理的引用计数:每个对象记录被变量绑定(引用)的数量,当为0时被销毁。

"""    del"""a = "悟空"b = ac = a# 删除变量a,b,不释放对象"悟空”del a, b# 由于变量c不再引用对象"悟空",而悟空的引用计数为0,所以被标记为可回收。c = None