Python疫起学习·万丈高楼平地起Day01(精简版|浓缩就是精华)内附两行代码解决某数字各个位数字,计算三角形第三边长

本文主要是介绍Python疫起学习·万丈高楼平地起Day01(精简版|浓缩就是精华)内附两行代码解决某数字各个位数字,计算三角形第三边长,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对象是Python中最基本的概念之一,在Python中一切皆对象

对象由数据和行为两个部分组成,而行为主要通过方法来实现,通过一些特殊方法的重写可以实现运算符重载。
这里有整数、实数、复数、字符串、列表、元组、字典、集合还有zip、map、enumerate、filter等对象,这里我有一点要强调一下,元组中如果只有一个元素的话,后面的逗号不能省略。如果对元组不熟悉,没关系,我会在接下来的专栏里详细介绍的,包学包会!

在Python中,不需要事先声明变量名及其类型,直接赋值即可创建任意类型的对象变量

也就是说不仅对象的值可以变化,变量的类型也可以随时发生改变

> x = 3
> x = 'Hello Python'
> x = [2, 0, 3, 6]

Python采用基于值的内存管理模式,也就是说Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因。

定义Python变量名的时候,需要注意以下问题:

1.变量名须以字母或下划线开头,变量名可由字母数字下划线组成,数字不能做变量名开头;
2.不能使用关键字作变量名;
3.Python对大小写敏感(懂我意思吧)

那么接下来我们就先快速熟悉一下Python的一些基础知识
注意!我这个Python专栏前面的这几篇文章会比较浅显,因为我的目的是让大家对Python的基础内容有一个初步的了解,前面几篇是适合初学者的,越到后面我就会讲越深

首先让我们一揽全局,大致了解一下Python各个部分

在这里插入图片描述

一、数字
整数、实数与复数

Python牛逼在于支持任意大的数字,具体可以大到什么程度仅受内存大小的限制。
在这里插入图片描述
要注意一点,由于精度问题,对于实数运算可能会有一定误差,应该以两者之差的绝对值是否小于某个特别小的EPS作为两实数是否相等的依据。
在这里插入图片描述
在这里插入图片描述
还有一点要注意,如果有过C类或者Java基础的同学应该知道,在数字的算术运算表达式求值时会进行隐式的类型转换。关于这一块也不用急,之后也会详细讲的!

Python内置支持复数类型及其运算

>x = 3 + 4j
>y = 5 + 6j				//使用j或J表示复数虚部
>x + y 
(8 + 10j)
>x * y
(-9+38j)
>abs(x)
5.0
>x.real
3.0
>x.imag
4.0
>x.conjugate()		//共轭复数
(3 - 4j)

小知识点(Java也支持的):在数字中间位置使用单个下划线作为分隔来提高数字可读性

>3_000_033
3_000_033
分数、高精度实数

Python标准库中fractions中的Fraction对象支持分数运算,还提供了计算最大公约数gcd()函数和高精度实数类Decimal
在这里插入图片描述
在这里插入图片描述
标准库中的fractions和decimal中提供的Decimal类实现了更高精度的运算
在这里插入图片描述

二、字符串

在Python中没有字符常量和变量的概念,只有字符串类型的常量和变量,单个字符也是字符串。观察一下两个例子,发现到这个有意思的初始化方式了吗
在这里插入图片描述

> x= x'Python'		//会报错,因为这种方式只适用于字符串常量
> x = x + 'Python'	//字符串变量间连接用加号

Python 3.x除了支持Unicode编码的str类型字符串之外,还支持字符串类型bytes。对str类型的字符串调用其encode()方法进行编码得到bytes字节串,对bytes字节串调用其decode()方法并指定正确的编码格式则解码得到str字符串
在这里插入图片描述
在这里插入图片描述

三、列表、元组、字典、集合

在这里插入图片描述
Python还提供了range、map、zip、filter、enumerate、reversed等大量迭代对象(迭代对象可理解为表示数据流的对象,每次返回一个数据),大多具有惰性求值的特点,仅在需要时才给出新的元素,从而减少了内存的占用。

四、运算符和表达式

Python是面向对象的语言,在Python中一切皆对象!运算符就是表现对象行为的一种形式,不同类的对象支持的运算符有所不同,同一种运算符作用于不同的对象时也可能会表现出不同的行为,这正是“多态”的体现

  • 算术运算符

    1、+运算符用于加法或连接对象(只支持同类型的对象)
    在这里插入图片描述
    2、*运算符用于乘法, 还可用于列表、元组、字符串这种序列类型与整数的乘法表示序列元素的重复,生成新的序列对象。字典和集合不支持与整数相乘,因为其中的元素不允许重复
    3、/和//运算符分别表示除法和求整商,//向下取整(不论正负数)在这里插入图片描述
    4、%运算符用于求余以及字符串格式化,但不推荐这种做法在这里插入图片描述
    5、**运算符用于幂乘,相当于内置函数pow()

>9 ** 0.5		//常用这种方式取平方根或者立方根等......
3
>pow(3, 2, 8)			//等价于(3**2)%8
1
  • 关系运算符(前提:操作数之间可比较大小!!!)
    < 、<=、>、>=、==、!=
1 < 3 < 5   			//等价于1 < 3 and 3 < 5

在这里插入图片描述

  • 成员测试运算符in与同一性测试运算符is
    1、in用于测试一个对象是否为另一个对象的元素
    在这里插入图片描述
    2、is用来测试两个对象是否是同一个,如果是,则返回True,否则返回False。两个对象是同一个意味着两者具有相同的内存地址在这里插入图片描述
    在这里插入图片描述
    • 集合运算符
      在这里插入图片描述
    • 位运算符和集合运算符
      1、位运算符只能用于整数,其内部执行过程:先将整数转换为二进制数,然后右对齐,必要的时候左侧补0,按位进行运算,然后再把计算结果转换为十进制数字返回。
      详细规则也可以参看这篇博文熄灯问题文末的的熄灯问题
      位与运算&规则如下:全1为1,有0为0
      1&1=1,1&0=0&1=0=0&0=0
      位或运算|规则如下:全0为0,有1为1
      1|1=1|0=0|1=1,0|0=0
      位移或^运算规则为:1 ^ 1 = 0 ^ 0 = 0, 1 ^ 0 = 0 ^ 1 = 1
    • 逻辑运算符and、or 、not
      exp1 and exp2 <== > exp1 if not exp1 else exp2
      exp1 or exp2 <===> exp1 if exp1 else exp2
      and和or具有惰性求值和逻辑短路特点,在一定程度上确实提高了代码的运行速度。但值得注意的是and和or并不一定返回True或False,而是得到最后一个被计算的表达式值,而not是一定会返回True或False
      在这里插入图片描述
      在这里插入图片描述
      这里来个小测试:求not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
      答案在图下方在这里插入图片描述
      因为按优先级由高到低:not > and > or
      (not 1 ) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
      (False) or (0) or (4) or (6) or (9)在这里插入图片描述
      所以答案为4
    • 矩阵乘法运算符@
      这个运算符常与扩展库numpy一起用,另外@还可以表示修饰器的用法,之后我会讲到。
      在这里插入图片描述
      最后还有一点补充:
>3 -- 5					//3 - (-5)
8
>3 +- 5					//3 + (-5)
-2
>3 -+ 5					//3 - (5)
-2

还有Python不支持++和–运算符,虽然有些时候貌似也用得了,但我劝大家还是别用,这涉及到线程那块的知识,咱们以后讲
在这里插入图片描述

精彩案例1

用户输入一个自然数,计算并输出其各个位的数字

x = input('Please enter a digit:')
print(*map(int, x))

在这里插入图片描述
这里用到了序列解包的思想,如果想详细了解,请跟着我看后面的博客吧

方法二、
传统思维

x = input('Please enter a digit:')
t = int(x)
v = []
num = 0
b = t % 10
if t / 10 == 0:print(x)
else:while int(t) != 0:v.append(b)t /= 10b = int(t) % 10num += 1for i in range(num - 1, -1, -1):print(v[i], end = ' ')

在这里插入图片描述

精彩案例2

已知三角形的两边长及其夹角,求第三边长

import mathx = input('请输入两边及夹角(度):')
a, b, theta = map(float, x.split())
c = math.sqrt(a ** 2 + b ** 2 - 2 * a * b * math.cos(theta * math.pi / 180))
print('c = ', c)

在这里插入图片描述

如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,明天我们不见不散!!!

这篇关于Python疫起学习·万丈高楼平地起Day01(精简版|浓缩就是精华)内附两行代码解决某数字各个位数字,计算三角形第三边长的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462820

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (