【python】python入门day2——数据类型与运算

news2024/11/24 12:45:58

python数据类型与运算

    • 一、Python中变量的数据类型
      • 1、数据类型分类
      • 2、数值类型
      • 3、布尔类型
      • 4、字符串类型
      • 5、其他类型(了解)
    • 二、Python数据类型转换
      • 1、使用Python实现超市的收银系统
      • 2、Python数据类型的转换方法
      • 3、总结
    • 三、Python运算符
      • 1、算术运算符
      • 3、赋值运算符
      • 4、复合赋值运算符
      • 5、比较运算符
      • 6、逻辑运算符(与或非)
      • 7、短路运算
      • 8、位运算符
    • 四、运算符优先级
    • 五、Python中的格式化输出
      • 1、格式化输出
      • 2、百分号格式化输出
      • 3、format方法格式化输出
      • 4、format方法简写形式格式化输出(推荐)
      • 5、格式化输出中的转义符号

一、Python中变量的数据类型

1、数据类型分类

7种数据类型
数值类型、布尔类型、字符串类型
列表类型、元组类型、集合类型、字典类型

如何判断一个变量到底是什么类型?

答:使用type(变量名称)方法,返回变量的数据类型

2、数值类型

数值类型就是我们日常生活中的数字,数字又分为两种形式:整数 与 小数(带小数点)

整数类型:int类型

小数类型:float类型

3、布尔类型

布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)

4、字符串类型

在Python变量定义中,如果其赋值的内容是通过单引号或双引号引起来的内容就是字符串str类型。

5、其他类型(了解)

# 1、list列表类型
list1 = [10, 20, 30, 40]
print(type(list1))

# 2、tuple元组类型
tuple1 = (10, 20, 30, 40)
print(type(tuple1))

# 3、set集合类型:去重
set1 = {10, 20, 30}
print(type(set1))

# 4、dict字典类型:查询、搜索
dict1 = {'name':'itheima', 'age':18}
print(type(dict1))

二、Python数据类型转换

1、使用Python实现超市的收银系统

name = input('请输入您要购买商品名称:')
id = input('请输入您要购买商品编号:')
price = input('请输入您要购买的商品价格:')

print(f'您购买了{name},商品编号为{id},商品价格为{price},欢迎下次光临!')

以上程序虽然可以按照上图完成程序的正常输出,但是遗留了一个非常严重的问题:这个价格price变量无法参与数学运算(如买了两个奥利奥,应该是18.5 * 2),原因在于input()方法返回的所有的结果都是str字符串类型。

怎么解决以上问题呢? 答:使用数据类型转换

2、Python数据类型的转换方法

函数说明
int(x [,base ])将x转换为一个整数
float(x)将x转换为一个浮点数
complex(real [,imag ])创建一个复数,real为实部,imag为虚部
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
chr(x)将一个整数转换为一个Unicode字符
ord(x)将一个字符转换为它的ASCII整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串

eval()方法的使用,把字符串中的数字转换为原数据类型

price = input('请输入您购买商品的价格:')
print(eval(price))
print(type(eval(price)))

str1 = ‘10’ 经过eval(str1) 转换为int类型

str2 = ‘10.88’ 经过eval(str1) 转换为float类型

3、总结

数据类型转换方法主要学了4个方法:

int() :转整型

float() :转浮点类型

str() :转字符串类型

eval() :把字符串转换为原数据类型

但是要特别注意:当float浮点类型转换为int整型时,其小数点后面的数据会丢失。

三、Python运算符

1、算术运算符

所谓的算数运算符就是我们日常生活中的加减乘除等待。

运算符描述实例
+1 + 1 输出结果为 2
-1 - 1 输出结果为 0
*2 * 2 输出结果为 4
/10 / 2 输出结果为 5
//整除9 // 4 输出结果为 2
%取余(取模)9 % 4 输出结果为 1
**幂指数2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2
()小括号小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9

案例1:了解一下算术运算符

num1 = 10
num2 = 4

# 四则运算 + - * /
print(f'加:{num1 + num2}')
print(f'减:{num1 - num2}')
print(f'乘:{num1 * num2}')
print(f'除:{num1 / num2}')
加:14
减:6
乘:40
除:2.5

案例2:和其他编程语言不太相同的几个算术运算符

num1 = 20
num2 = 6
num3 = 5

# 1、整除
print(f'整除:{num1 // num2}')
# 2、求余数
print(f'余数:{num1 % num2}')
# 3、幂指数
print(f'幂指数:{num2 ** 3}')
# 4、圆括号
print(f'优先级:{(num1 + num2) * num3}')
整除:3
余数:2
幂指数:216
优先级:130

3、赋值运算符

运算符描述实例
=赋值将=右侧的结果赋值给等号左侧的变量

案例1:把某个值赋值给某个变量

num = 10
1

案例2:多个变量同时进行赋值操作

n = 5
f = 10.88
s = 'hello world'

简写为:

n, f, s = 5, 10.88, 'hello world'
print(n)
print(f)
print(s)
5
10.88
hello world

案例3:多个变量赋予相同的值

a = 11
b = 11

简写为:

a = b = 11

4、复合赋值运算符

复合赋值运算符 = 算术运算符 结合 赋值运算符

复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。

案例:综合案例

i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')

num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')

num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')
更新后,i的值为:2
更新后,num1的值为:1
更新后,num2的值为:8

5、比较运算符

特别注意:当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。

案例:两个数大小的比较

num1 = 10
num2 = 20

print(num1 > num2)  # False
print(num1 < num2)  # True
print(num1 >= num2) # False
print(num1 <= num2) # True
print(num1 == num2) # False
print(num1 != num2) # True

6、逻辑运算符(与或非)

运算符逻辑表达式描述实例
andx and y只要有一个运算数是False,结果就是False; 只有所有的运算数都为True时,结果才是True 做取值运算时,取第一个为False的值,如果所有的值都为True,取最后一个值。True and True and False–>结果为False True and True and True–>结果为True 1 and 0 and 2–>结果是0;1 and 2 and 3–>结果是3
orx or y只要有一个运算数是True,结果就是True; 只有所有的运算数都为False时,结果才是False 做取值运算时,取第一个为True的值,如果所有的值都为False,取最后一个值。False or False or True–>结果为True False or False or False–>结果为False 1 or 0 or 2–>结果是1;0 or None or () or ‘’ or {} -->结果是{}
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

注:

当and左侧的表达式结果为false,则右侧表达式不再执行

当or左侧的表达式结果为true,则右侧表达式不再执行

7、短路运算

print(3 and 4 and 5)  # 5
print(5 and 6 or 7)   # 6
4 > 3 and print('hello world')  # 输出hello world
5
6
hello world

在逻辑运算中,不一定逻辑运算符的两边都是纯表达式。也可以是数值类型的数据。

Python把0、空字符串和None看成 False,其他数值和非空字符串都看成 True。

8、位运算符

按位运算符是把数字看作是二进制来进行计算的。 下表中变量 a 为 60,b 为 13,二进制格式如下:

a = 0011 1100  # 60的二进制
b = 0000 1101  # 13的二进制
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011
位运算描述示例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

四、运算符优先级

当多种运算符做混合运算时,就会涉及到先运算哪个,后运算哪个问题。以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 ‘AND’
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not>and>or逻辑运算符

在以后的实际开发中,如果有多种运算符进行混合运算时,强烈建议使用小括号来手动的控制运算符的优先级!

b = True or True and False    # bad 
c = True or (True and False)  # good

五、Python中的格式化输出

1、格式化输出

目前为止,我们所有的输出都是直接通过print(变量名称)形式直接打印的。但是实际工作中,我们可能需要对变量的输出进行格式化操作(按照一定格式进行输出)。

2、百分号格式化输出

基本语法:

...
print(变量名称)
print('字符串%格式' % (变量名称))
print('字符串%格式 %格式 %格式' % (变量名称1, 变量名称2, 变量名称3))

%格式常见形式如下:

格式符号转换
%s字符串
%d有符号的十进制整数
%f浮点数
%c字符
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写ox)
%X十六进制整数(大写OX)
%e科学计数法(小写’e’)
%E科学计数法(大写’E’)
%g%f和%e的简写
%G%f和%E的简写

案例:定义两个变量title=‘大白菜’,price=3.5,按照如下格式进行输出:今天蔬菜特价了,大白菜只要3.5元/斤。

title = '大白菜'
price = 3.5
# 格式化输出“今天蔬菜特价了,大白菜只要3.5元/斤。"
print("今天蔬菜特价了,%s只要%.2f元/斤。" % (title, price))

其实除了%f可以设置小数点位数以外,%d也可以填充序号。

案例:定义两个变量id=1,name=‘itheima’,按照如下格式进行输出:姓名itheima,学号000001

id = 1
name = 'itheima'
print("姓名%s,学号%06d" % (name, id))

3、format方法格式化输出

基本语法:

...
print('字符串{}'.format(变量名称1))
print('{}字符串{}'.format(变量名称1, 变量名称2))

案例:定义两个变量,name=‘孙悟空’,mobile=‘18878569090’,按照以下格式进行输出"姓名:孙悟空,联系方式:18878569090"

name = '孙悟空'
mobile = '18878569090'
print("姓名:{},联系方式:{}".format(name, mobile))

4、format方法简写形式格式化输出(推荐)

在Python3.6以后版本,为了简化format输出操作,引入了一个简写形式:

name = '孙悟空'
mobile = '18878569090'
print(f'姓名:{name},联系方式:{mobile}')

5、格式化输出中的转义符号

在字符串中,如果出现了\t和\n,其代表的含义就是两个转义字符

\t :制表符,一个tab键(4个空格)的距离
\n :换行符

案例:

print('*\t*\t*')
print('hello\nworld')

特别说明:默认情况下,每个print()方法执行完毕后,都会输出一个\n换行符。如果不想让print()方法换行,可以添加一个end参数

print('*', end='')

练习:

print("=" * 10, "我的名片", "=" * 10, "\n姓名:chris", "\nQQ:325555555", "\n手机号:185445654555",
      "\n公司地址:徐州人民政府", "\n", "=" * 27, sep="")
==========我的名片==========
姓名:chris
QQ:325555555
手机号:185445654555
公司地址:徐州人民政府
===========================

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1879664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机科学基础简单介绍(1—6)

计算机影响了我们生活的方方面面&#xff0c;在我们这个时代完全渗透了我们的生活。 最早是算盘、星盘、时钟、尺卡等古老的计算工具&#xff0c;后来出现了进步计算机&#xff0c;类似与汽车里程表的一种机械工具&#xff0c;但是他也是手工制品。经过历史的演变与发展&#x…

Prompting已死?DSPy:自动优化LLM流水线

在 LLM 应用中&#xff0c;如何优化一个 pipeline 的流程一直是一个比较头疼的问题。提示词作为一个预定义字符串&#xff0c;往往也没有很好地优化方向。本文中的 DSPy 框架或许能在实际应用中对效果优化起到一定帮助。 当前&#xff0c;在 LLM 的应用中&#xff0c;大家都在探…

LSTM时间序列基础学习

时间序列 时间序列可以是一维&#xff0c;二维&#xff0c;三维甚至更高维度的数据&#xff0c;在深度学习的世界中常见的是三维时间序列&#xff0c;这三个维度分别是&#xff08;batch_size,time_step,input_dimensions&#xff09;。 其中time_step是时间步&#xff0c;它…

GPU配置pytorch环境(links for torch)

一、创建一个新的虚拟环境 二、激活虚拟环境 三、打开或新建一个pycharm项目&#xff0c;把环境选成我们刚刚新建的虚拟环境 四、从links for torch网站下载与自己cuda版本和python版本对应的torch 五、在pycharm的终端pip install 安装torch 直到显示成功安装 六、验证pytorch…

六月,允许自己做自己,别人做别人

今天结束后&#xff0c;2024 就过去一半了。 年初的规划完成一半了吗&#xff1f;如果没有也没关系&#xff0c;做你自己继续前进。 家人来北京旅游&#xff0c;我累趴了 六月初&#xff0c;我搬家了&#xff0c;这次租了一整套房&#xff0c;是一个小俩居、还带一个小阁楼。…

新手练习项目 6:图书管理系统

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#xff09; 目录 一、项目描述二、项目结构三、项目步骤步骤1&#xff1a;定义Book类步骤2&#xff1a;实现主程序…

FHE全同态加密介绍——小白版

1. 何为FHE&#xff1f; FHE中的evluation key p k e v a l pk_{eval} pkeval​是public的&#xff0c;用于密文计算逻辑 f ( ⋅ ) f(\cdot) f(⋅)的evalute circuit中&#xff0c;但根据所处理数据加解密密钥的不同&#xff0c;可将FHE分为&#xff1a; 1&#xff09;对称F…

Web后端开发概述环境搭建项目创建servlet生命周期

Web开发概述 web开发指的就是网页向后再让发送请求,与后端程序进行交互 web后端(javaEE)程序需要运行在服务器中 这样前端才可以对其进行进行访问 什么是服务器? 解释1: 服务器就是一款软件,可以向其发送请求,服务器会做出一个响应.可以在服务器中部署文件&#xff0c;让…

【ai】trition:tritonclient.utils.shared_memory 仅支持linux

Can’t find tritonclient.utils.shared_memory on WIN10 #4149yolov4的python客户端 导入以后,windows 的pycharm 就是看不到折腾了很久:SaviorEnv 环境下安装tritonclient[all]也会失败 (base) C:\Users\zhangbin>conda create -n SaviorEnv python=3.8 Collecting pack…

计算机体系结构和指令系统

1.计算机体系结构 - 五大部件 - 冯 诺依曼 计算机的特点 1.计算机有五大部件组成 2.指令和数据以同等地位存储于存储器&#xff0c;可按照地址访问 3.指令和数据用二进制表示 4.指令由操作码和地址码组成 5。存储程序 6.以计算器为中心&#xff08;输入、输出设备与存储器…

成都市水资源公报(2000-2022年)

数据年限&#xff1a;2000-2022年&#xff0c;无2009年 数据格式&#xff1a;pdf、word、jpg 数据内容&#xff1a;降水量、地表水资源量、地下水资源量、水资源总量、蓄水状况、平原区浅层地下水动态、水资源情况分析、供水量、用水量、污水处理、洪涝干旱等

[XYCTF新生赛]-PWN:EZ1.0?(mips,mips的shellcode利用)

查看保护 查看ida 这里用的是retdec&#xff0c;没安装的可以看这个[CTF]-PWN:mips反汇编工具&#xff0c;ida插件retdec的安装-CSDN博客 这里直接看反汇编貌似看不出什么&#xff0c;所以直接从汇编找 完整exp&#xff1a; from pwn import* context(log_leveldebug,archmip…

【机器学习】在【Pycharm】中的应用:【线性回归模型】进行【房价预测】

专栏&#xff1a;机器学习笔记 pycharm专业版免费激活教程见资源&#xff0c;私信我给你发 python相关库的安装&#xff1a;pandas,numpy,matplotlib&#xff0c;statsmodels 1. 引言 线性回归&#xff08;Linear Regression&#xff09;是一种常见的统计方法和机器学习算法&a…

Nature Climate Change | 中国科学院地理资源所吴朝阳课题组发表生物多样性调控植被物候的研究成果!

本文首发于“生态学者”微信公众号&#xff01; 植被春季物候对气候变化的响应通常是通过测量其温度敏感性&#xff08;ST&#xff0c;温度每升高1度&#xff0c;植被提前展叶的天数&#xff09;来量化。ST是植被在当地历史气候环境的选择压力下演化形成的最优策略&#xff0c;…

基于GRU自回归解码模拟人类股票交易实现高胜率

这里是基于encoder-decoder和注意力机制 模型代码,sigmoid对资产进行调仓。训练直接使用收益作为优化函数 import torch import torch.nn as nn from dataloader import create_dataloadersclass Attention(nn.Module):def __init__(self, hidden_dim):super(Attention, self…

C++集中营笔记(1)第一节课和第二节课

第一节课linux的使用 1.Linux 常用命令 [chenbogon ~]$ cd ~ [chenbogon ~]$ cd /home [chenbogon home]$ mkdir cpp-test mkdir: cannot create directory ‘cpp-test’: Permission denied [chenbogon home]$ sudo mkdir cpp-testWe trust you have received the usual lec…

Leetcode 78 数组子集

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的 子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1…

pyqt 文件浏览列表视图和图标视图

pyqt 文件浏览列表视图和图标视图 目的效果代码 目的 使用pyqt实现文件浏览列表视图和图标视图&#xff0c;像电脑文件浏览一样。如下图所示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QToolBar, QAction, Q…

商城自动化测试实战 —— 登录+滑块验证

hello大家好&#xff0c;我是你们的小编&#xff01; 本商城测试项目采取PO模型和数据分离式架构&#xff0c;采用pytestseleniumjenkins结合的方式进行脚本编写与运行&#xff0c;项目架构如下&#xff1a; 1、创建项目名称&#xff1a;code_shopping&#xff0c;创建所需项目…

基于单片机光纤测距系统的设计与实现

摘要 &#xff1a; 光纤由于其频带宽 、 损耗低及抗干扰能力强等优点已被广泛地应用在通信 、 电子及电力方面 &#xff0c; 是我们生产生活中必不可少的媒介。 在实际的光纤实验 、 安装 、 运营和维护工作中 &#xff0c; 一种精准 、 轻便和易操作的光纤测距系统显得尤为重…