Python 学习1 基础

news2024/11/15 21:22:14

文章目录

  • 基础
    • 字符串
    • 字面量
    • 常用的值类型
    • 注释
    • 变量
    • print语句
    • 数据类型
    • 数据类型转换
    • 标识符
    • 运算符
  • 字符串拓展
  • 小结

2023.10.28 周六

最近打算学一下Python,毕竟确实简单方便,而且那个编程语言排名还是在第一。不过不打算靠它吃饭,深不深入暂且不说,准备先把语法学一下,尝试用py去刷算法。
讲道理语法之前学过py基础,不过感觉又忘光了,这里再跟着b站黑马的视频学学,先记一下。

贴一下链接 B站 - 黑马程序员2022python教程

基础

字符串

是指由任意数量的字符组成,需要用双引号包围起来

字面量

字面量是被写在代码中的固定的值。
字面量可以是整数字面量、固定的浮点数或固定的字符串字面量
如何将字面量输出到屏幕上,需要使用 print 语句

常用的值类型

在这里插入图片描述

注释

单行注释以 # 作为开头,建议有空格隔开

# 这是一个单行注释

多行注释以三个双引号"""引起来的内容作为注释的内容,支持换行

"""
这里是
一个
多行注释
"""

变量

变量是存储计算结果或表示值的抽象概念
变量定义格式为 变量名 = 变量值

age = 50 

从这来看,我本以为,py没有明确的类型要求,那么应该是弱类型语言。但实际完全不对,强弱语言和动静语言的区别和这没关系,具体见 Python到底是强类型语言,还是弱类型语言? ,我觉得说的比我有道理,那么暂依此来看,简单来说强弱类型实际是取决于 “程序对于 untrapped errors 的检查强度”,由此看python是动态语言没错但也是强类型语言。

print语句

import sys # import貌似是必须放在文件最上面,否则会报错

print(50)
print("hello")
# 打印多个值:50、hello、50.5、True、None(None也可以打印出来,True也可以,但是作为字符串值),
# 用|分隔(默认是空格),结尾用两个换行(默认是一个换行)
print(50, "hello", 50.5, True, None, sep="|", end="\n\n")
# sep也可以是None,表示不分隔,end也可以是None,表示不换行;
# file是输出到哪里,默认是sys.stdout,也就是控制台
# flush是是否刷新缓冲区,默认是False。True表示立即输出,False表示缓冲区满了再输出
print(-1.11, "你好", sep=None, end="\t\n", file=sys.stdout, flush=False)
# 输出到文件,如果文件不存在会自动创建,如果文件存在会覆盖
print("hello world", file=open("hello.txt", "w"))
# 输出到文件,如果文件不存在会自动创建,如果文件存在会在文件末尾追加
print("hello world", file=open("hello.txt", "a"))
# 输出到文件,如果文件不存在会自动创建,如果文件存在会报错
# print("hello world",file=open("hello.txt","x"))
# 输出到内存流
import io

f = io.StringIO()  # 创建内存流
print("hello world", 123, file=f)  # 这里不会输出到控制台,而是输出到内存流,也就是f
print(f.getvalue())  # 获取内存流的值并打印
f.close()
# 输出到标准错误流,也就是控制台,会打印为红色的报错信息
print("hello world error", file=sys.stderr)
print("经过实验,打印的错误信息并不是真的错误,下面的语句还是可以执行的:", 3.5 * 2.4)
price = 3.5
print("简单的运算也可以打印啊",price * 2.4,sep=" —— ")

打印结果如下,虽然不知道为什么error那条信息会出现在最开始。。但是调试的话,它又会出现在最下面。。大概打印到流又从流获取不是同步操作?

hello world error
50
hello
50|hello|50.5|True|None

-1.11 你好	
hello world 123

经过实验,打印的错误信息并不是真的错误,下面的语句还是可以执行的: 8.4
简单的运算也可以打印啊 —— 8.4

数据类型

Python中变量没有类型,只有存储的数据有类型
字符串、整数和浮点数是Python中常见的三类数据类型,它们的类型名称分别为string、int和float
type语句查看变量中存储的数据类型,有返回值

print(type(-9))  # <class 'int'>
print(type(9 * 9))  # <class 'int'>
print(type(-920.554))  # <class 'float'>
print(type(-9 * 9.1 / 2.5))  # <class 'float'>
print(type(True))  # <class 'bool'>

str_type = type("nihao")
print(type(str_type))  # <class 'type'>

print(print(type("nihao"))) # <class 'str'>(换行)None

print(print()) #(换行)None

print(type(print(666))) # 666(换行)<class 'NoneType'>

数据类型转换

在Python中,使用int、float、str语句进行类型转换,注意结果输出。
任何类型都可转成字符串。
字符串要转换成数字必须只有数字,否则报错。
浮点数转整数会丢失精度,小数部分没了。

# 万物皆可转成字符串
print(type(str(11)), str(11)) # <class 'str'> 11
print(type(str(11.11)), str(11.11)) # <class 'str'> 11.11
print(type(str(True)), str(True)) # <class 'str'> True
print(type(str([1, 2, 3])), str([1, 2, 3])) # <class 'str'> [1, 2, 3]
print(type(str((1, 2, 3))), str((1, 2, 3))) # <class 'str'> (1, 2, 3)
print(type(str({1, 2, 3})), str({1, 2, 3})) # <class 'str'> {1, 2, 3}
print(type(str({'a': 1, 'b': 2, 'c': 3})), str({'a': 1, 'b': 2, 'c': 3})) # <class 'str'> {'a': 1, 'b': 2, 'c': 3}
print(type(str(None)), str(None)) # <class 'str'> None
print(type(str(str)), str(str)) # <class 'str'> <class 'str'>
print(type(str(int)), str(int)) # <class 'str'> <class 'int'> 因为int是关键字,用str(int)直接把类型的字符串打印出来了

print("=====================================")

print(type(int('11')), int('11')) # <class 'int'> 11
print(type(int(11.11)), int(11.11)) # <class 'int'> 11 精度丢失
print(type(int(11.55)), int(11.55)) # <class 'int'> 11,这么看来,int()是直接截取小数点前面的数字而不是四舍五入
# print(type(int('11.11')), int('11.11')) # 报错,因为int()不能直接转换浮点数字符串
print(type(int(True)), int(True)) # <class 'int'> 1
# print(type(int([1, 2, 3])), int([1, 2, 3])) # 报错,因为int()不能直接转换list

print("=====================================")

print(type(float('11.22')), float('11.22')) # <class 'float'> 11.22,int()不能直接转换浮点数字符串,但是float()可以
print(type(float(11)), float(11)) # <class 'float'> 11.0
print(type(float(11.11)), float(11.11)) # <class 'float'> 11.11
print(type(float(True)), float(True)) # <class 'float'> 1.0
# print(type(float([1, 2, 3])), float([1, 2, 3])) # 报错,因为float()不能直接转换list

标识符

编程时给类、方法、变量等等取的名字称为 标识符
Python中的 标识符命名规则 ,包括内容限定大小写敏感不可使用关键字等三类规则。
其中,标识符只允许出现 英文、中文、数字和下划线不能以数字开头,关键字也不能使用。同时,标识符的命名要做到简明易懂,避免使用中文和特殊符号。
关键字:
在这里插入图片描述

运算符

在这里插入图片描述

字符串拓展

  1. 定义方式
    单引号,双引号,三个双引号(写法同多行注释,但是赋给一个接收的变量就是字符串)
  2. 引号嵌套
    在这里插入图片描述
  3. 字符串拼接 +
  4. 字符串格式化
    name = "张三"
    # print("hello," + name + "很高兴认识你,我的电话是:" + 123456) # TypeError: can only concatenate str (not "int") to str
    # 不用 + ,用逗号
    print("hello," + name + ",很高兴认识你,我的电话是:", 123456, sep="")  # hello,张三,很高兴认识你,我的电话是:123456
    # 转换成字符串
    print("hello," + name + ",很高兴认识你,我的电话是:" + str(123456), sep="")  # hello,张三,很高兴认识你,我的电话是:123456
    # 占位符 %s 字符串 %d 整数 %f 浮点数
    print("hello, %s,很高兴认识你,我的电话是:%d" % (name, 123456))  # hello, 张三, 我的电话是:123456 
    # 快速占位符f"{}",不能做精度控制,适合快速显示
    phone = 123456
    print(f"hello, {name},很高兴认识你,我的电话是:{phone}")  # hello, 张三, 我的电话是:123456
    # {}中也可以放简单表达式
    print(f"hello, {type('字符串')},很高兴认识你,我的电话是:{4 ** 4}") # hello, <class 'str'>,很高兴认识你,我的电话是:256 
    
  5. 精度控制
    在这里插入图片描述
    num1 = 11
    num2 = 11.49
    print("11保留1位:{:.1f}".format(num1)) # 11.0
    print("11.49保留1位:%.1f" % num2) # 11.5 四舍五入
    print("11保留3位:{:.3f}".format(num1)) # 11.000 补0
    print("11.49保留3位:%.3f" % num2) # 11.490
    print("11宽度为5:{:5d}".format(num1)) #    11 右对齐,不足左边补3个空格
    print("11.49宽度为5,保留0位小数,%5.0f" % num2) #    11(右对齐)(四舍五入)
    print("11.49宽度为12:%12f" % num2) #    11.490000(右对齐,算上小数点是9位,不足12位左边补3个空格)(四舍五入)
    print("11宽度为9,保留1位:{:9.1f}".format(num1)) #  11.0(右对齐)
    print("11.49宽度为9,保留1位:%9.1f" % num2) # 11.5(右对齐)
    
  6. 表达式:即具有明确执行结果的代码语句
  7. 数据输入 input 语句
    # 如果三次输入的name一样,那么这三个代码输出是一样的
    print("你是谁?", end="")
    name = input()
    print("我知道了,你是%s" % name)
    
    name = input("你是谁?")
    print(f"我知道了,你是{name}")
    
    print("我知道了,你是", input("你是谁?"), sep="")
    

小结

今天到此为止。
内容上,目前看了第一阶段第一章,都是基础,32小时大概看了1/6的样子。
难度上不得不说,一点都不难,当然我有基础,但是没基础也一样,比java好学太多了。
感想是看的真慢,别看看了六分之一,倍速看的也很久。其实最费时间的不是看视频,是跟着写验证、虽然不验证我也知道什么情况,总归写了记得清楚点。还有费时间的其实是这篇博客,真的是,哇,看一点记一点,标签页切来切去,csdn的MD编辑器……emm,我才发现可以隐藏预览区,那没事了……

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

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

相关文章

防数据泄密的解决方案

防数据泄密的解决方案 安企神数据防泄密系统下载使用 现代化企业离不开信息数据&#xff0c;数据对企业的经营至关重要&#xff0c;也是企业发展的命脉。为了保护公司数据不被泄露&#xff0c;尤其是在防止数据泄密方面&#xff0c;公司面临着巨大的挑战&#xff0c;需要采取…

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)

文章目录 一、爬取目标二、实现效果三、准备工作四、代理IP4.1 代理IP是什么&#xff1f;4.2 代理IP的好处&#xff1f;4.3 获取代理IP4.4 Python获取代理IP 五、代理实战5.1 导入模块5.2 设置翻页5.3 获取图片链接5.4 下载图片5.5 调用主函数5.6 完整源码5.7 免费代理不够用怎…

EasyFlash移植使用- 关于单片机 BootLoader和APP均使用的情况

目前&#xff0c;我的STM32单片机&#xff0c;需要在BootLoader和APP均移植使用EasyFlash&#xff0c;用于参数管理和IAP升级使用。 但是由于Flash和RAM限制&#xff0c;减少Flash占用&#xff0c;我规划如下&#xff1a; BootLoader中移植EasyFlash使用旧版本&#xff0c;因为…

机器学习-基本知识

 任务类型 ◼ 有监督学习(Supervised Learning) 每个训练样本x有人为标注的目标t&#xff0c;学习的目标是发现x到t的映射&#xff0c;如分类、回归。 ◼ 无监督学习(Unsupervised Learning) 学习样本没有人为标注&#xff0c;学习的目的是发现数据x本身的分布规律&#xf…

ROS自学笔记二十: Gazebo里面仿真环境搭建

Gazebo 中创建仿真实现方式有两种:1直接添加内置组件创建仿真环境2: 手动绘制仿真环境 1.添加内置组件创建仿真环境 1.1启动 Gazebo 并添加组件 1.2保存仿真环境 添加完毕后&#xff0c;选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录)&#xff0c;文…

二维数组如何更快地遍历

二维数组如何更快地遍历 有时候&#xff0c;我们会发现&#xff0c;自己的代码和别人的代码几乎一模一样&#xff0c;但运行时间差了很多&#xff0c;别人是 AC \text{AC} AC&#xff0c;你是 TLE \text{TLE} TLE&#xff0c;这是为什么呢&#xff1f; 一个可能的原因是数组的…

延迟队列实现方案总结

日常开发中&#xff0c;可能会遇到一些延迟处理的消息任务&#xff0c;例如以下场景 ①订单支付超时未支付 ②考试时间结束试卷自动提交 ③身份证或其他验证信息超时未提交等场景。 ④用户申请退款&#xff0c;一天内没有响应默认自动退款等等。 如何处理这类任务&#xff0c;最…

http1,https,http2,http3总结

1.HTTP 当我们浏览网页时&#xff0c;地址栏中使用最多的多是https://开头的url&#xff0c;它与我们所学的http协议有什么区别&#xff1f; http协议又叫超文本传输协议&#xff0c;它是应用层中使用最多的协议&#xff0c; http与我们常说的socket有什么区别吗&#xff1f; …

2000-2021年上市公司产融结合度量数据

2000-2021年上市公司产融结合度量数据 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;股票代码、年份、是否持有银行股份、持有银行股份比例、是否持有其他金融机构股份、产融结合 3、来源&#xff1a;上市公司年报 4、范围&#xff1a;上市公司 5、样本量&#xff…

4种类型WMS的简要说明

仓库管理系统&#xff08;WMS&#xff09;主要有四种类型&#xff1a;独立仓库管理系统、供应链管理系统中的仓库管理模块、ERP 系统中的仓库管理模块和基于云的仓库管理系统。 独立仓库管理系统 独立仓库管理系统提供的功能可实现日常仓库运营。公司可以使用WMS系统来监管和…

【MATLAB源码-第62期】基于matlab的DCSK(差分混沌移位键控调制)系统误码率仿真。

MATLAB 2022a 1、算法描述 DCSK&#xff08;Differential Chaos Shift Keying&#xff09;是一种差分混沌移位键控调制方式&#xff0c;常用于无线通信系统。其调制和解调的基本流程如下&#xff1a; 1. DCSK调制 1.1 生成混沌序列 - 初始条件&#xff1a;选择一个混沌映射&a…

『K8S 入门』一:基础概念与初步搭建

『K8S 入门』一&#xff1a;基础概念与初步搭建 一、kubernetes 组件 官方示图 抽象示图 Master 控制面板 Api-Server&#xff1a;接口服务&#xff0c;基于 REST 风格开放 k8s 接口的服务ControllerManager cloud-controller-manager&#xff1a;云控制管理器。第三方平…

Android图片加载框架库源码解析 - Coil

文章目录 一、什么是Coil二、引入Coil1、ImageView加载图片1.1、普通加载1.2、crossfade(淡入淡出)加载1.3、crossfade的动画时间1.4、placeholder1.5、error1.6、高斯模糊1.7、灰度变换1.8、圆形1.9、圆角 2、Gif加载3、SVG加载(不存在)4、视频帧加载5、监听下载过程6、取消下…

想翻译pdf文档,试了几个工具对比:有阿里(完全免费,快,好用,质量高,不用注册登录)道最好(有限免费) 百度(有限免费)和谷歌完全免费(网不好)

文档翻释作为基础设施&#xff0c;工作必备。 阿里 &#xff08;完全免费&#xff0c;快&#xff0c;好用&#xff0c;质量高&#xff0c;不用注册登录&#xff0c;无广告&#xff09;我给满分 https://translate.alibaba.com/#core-translation 先选好语言。 Google(完全免…

PDManer生成Postgis对应Schema数据库设计文档

项目开发数据库选择postGis&#xff0c;由于需要编写数据库设计说明书&#xff0c;因此选择工具PDManer生成数据库设计文档&#xff0c;但是postGis一个数据库&#xff0c;可能对应多个Schema。如下图所示&#xff1a; 1.编写数据库设计文档时&#xff0c;仅需编写hly这个Sche…

美妆造型教培服务预约小程序的作用是什么

美业市场规模很高&#xff0c;细分类目更是比较广&#xff0c;而美妆造型就是其中的一类&#xff0c;从业者也比较多&#xff0c;除了学校科目外&#xff0c;美妆造型教培机构也有生意。 对机构来说主要目的是拓客引流-转化及赋能&#xff0c;而想要完善路径却是不太容易&…

Ubuntu16.04 python matplotlib 坐标轴标签出现中文乱码

问题&#xff1a;坐标轴打印中文时&#xff0c;显示会乱码 import matplotlib.pyplot as plt plt.ylabel(时间刻度)原因&#xff1a;matplotlib里面没有中文字体解决方法&#xff1a;下载SimHei字体&#xff0c;快捷方法是使用everything直接在windows搜索simhei.ttf&#xff…

计算机基础知识41

前端 # 前端是所有跟用户直接打交道 比如&#xff1a;PC页面、手机页面、汽车显示屏&#xff0c;肉眼可以看见的 # 后端&#xff1a;一堆代码&#xff0c;用户不能够直接看到&#xff0c;不直接与用户打交道 常见的后端&#xff1a;Python、Java、Go等 # 学了前端就可以做全栈…

0004net程序设计-抗疫物资

文章目录 **摘** **要**目 录系统设计开发环境 摘 要 近些年来&#xff0c;随着科技的飞速发展&#xff0c;互联网的普及逐渐延伸到各行各业中&#xff0c;给人们生活带来了十分的便利&#xff0c;抗疫物资管理系统利用计算机网络实现信息化管理&#xff0c;使整个抗疫物资管理…

Kafka - 3.x 分区分配策略及再平衡不完全指北

文章目录 生产经验——分区分配策略及再平衡生产者分区分配之Range及再平衡Range分区策略原理Range分区分配策略及再平衡案例 生产者分区分配之RoundRobin策略及再平衡RoundRobin分区策略原理RoundRobin分区分配策略及再平衡案例 生产者分区分配之Sticky及再平衡Sticky分区策略…