Python 学习1 基础

文章目录

  • 基础
    • 字符串
    • 字面量
    • 常用的值类型
    • 注释
    • 变量
    • 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 iof = 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'>(换行)Noneprint(print()) #(换行)Noneprint(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()不能直接转换listprint("=====================================")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.mzph.cn/news/125116.shtml

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

相关文章

linux-vsftp虚拟多用户

目录 1.安装vsftp 2.安装DB工具&#xff0c;能转化普通文件为vsftpd识别数据库加密文件 3.创建登录虚拟用户的名单 4.加密文件 6.需要修改vsftpd的配置文件 7.修改vsftp的配置文件&#xff0c;加载支持虚拟用户模式 8.针对不同用户开启不同权限 9.重启服务 10.测试 安…

记录微调chatglm3

用于记录chatglm3的过程&#xff0c;防止忘记 需要注意的 可以使用xtuner -h查看有哪些功能可以使用。 [2023-10-31 11:40:18,643] [INFO] [real_accelerator.py:158:get_accelerator] Setting ds_accelerator to cuda (auto detect) 10/31 11:40:22 - mmengine - INFO - Ar…

软件测试之接口测试详解

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给…

塔望食观察丨从“一药难求”看国内退烧药品牌是怎样炼成的

随着新冠疫情防疫的全面放开&#xff0c;感染患者不断增多&#xff0c;市民在未知的恐慌中开启了囤药模式&#xff0c;药店中的“四类药”&#xff08;退烧、止咳、抗病毒、抗生素类药品&#xff09;被一抢而空&#xff0c;尤其是以退烧类药物更为短缺&#xff0c;以解热镇痛的…

针灸养生服务预约小程序的效果如何

针灸服务的市场需求度很高&#xff0c;每个城市中都有不少相关品牌&#xff0c;对商家来说&#xff0c;如何引流拓客、打造品牌是生意开展的首要条件之一&#xff0c;且主要以同城用户为主&#xff0c;或连锁情况下为各店引流&#xff0c;但传统线下模式很难实现生意拓展。 那…

缓存和数据库一致性解决方案

引入缓存提高性能 如果你的业务处于起步阶段&#xff0c;流量非常小&#xff0c;那无论是读请求还是写请求&#xff0c;直接操作数据库即可&#xff0c;这时你的架构模型是这样的&#xff1a; 但随着业务量的增长&#xff0c;你的项目请求量越来越大&#xff0c;这时如果每次都…

双十一限时优惠!沃通SSL证书、代码签名证书年度好价

2023年11月01日至11月11日&#xff0c;沃通2023“双十一限时特惠”活动&#xff0c;精选9款SSL证书、国密SSL证书、代码签名证书产品推出年度好价&#xff0c;部分SSL证书产品低至5折&#xff0c;更有EV代码签名证书爆款特惠&#xff01;多种数字证书一站式采购&#xff0c;解决…

外汇天眼:GOMAX──假网友热心教投资,高返利活动骗入金

在通讯科技如此发达的今日&#xff0c;人们愈来愈习惯透过网路交友&#xff0c;寻找志同道合的伙伴&#xff0c;甚至发展一段亲密关系。 然而&#xff0c;近年来假交友诈骗十分猖獗&#xff0c;至今已造成许多民众极大的财务损失&#xff0c;成为无法忽视的社会问题。 不久前&a…

听GPT 讲Rust源代码--library/std(6)

题图来自 Why you should use Python and Rust together[1] File: rust/library/std/src/sys/unix/thread_parking/netbsd.rs 文件netbsd.rs位于Rust源代码的rust/library/std/src/sys/unix/thread_parking目录下。该文件是Rust标准库中用于Unix操作系统的线程等待和唤醒机制的…

基于单片机的智能电子鼻的设计

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、智能电子鼻系统的设计方案1.1智能电子鼻系统的设计思路1.2智能电子鼻系统的设计流程图1.3智能电子鼻系统的硬件数…

leetcode第369周赛

2917. 找出数组中的 K-or 值 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数&#xff1a; 只有在 nums 中&#xff0c;至少存在 k 个元素的第 i 位值为 1 &#xff0c;那么 K-or 中的第 i 位的值才是 1 。 返回 nums …

4.1 Bloom算法

一、Bloom算法介绍 1.具体效果 2.实现思路 先将原图按照一定阈值提取较亮的区域模糊提取出的图像将模糊过的图像与原图混合 3.HDR与LDR LDR&#xff08;Low Dynamic Range&#xff0c;低动态范围&#xff09; JPG、PNG格式图片RGB范围在[0,1]之间 HDR&#xff08;High Dynam…

计算机网络第3章-TCP协议(2)

TCP拥塞控制 TCP拥塞控制的三种方式&#xff1a; 慢启动、拥塞避免、快速恢复 慢启动 当一条TCP连接开始时&#xff0c;cwnd的值是一个很小的MSS值&#xff0c;这使得初始发送速率大约为MSS/RTT。 在慢启动状态&#xff0c;cwnd的值以1个MSS开始并且每当传输的报文段首次被…

使用Hystrix实现请求合并,降低服务器并发压力

1.引入Hystrix <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency> 2.在启动类上开启Hystrix功能 EnableHystrix 3.请求合并实现代码 import com…

解决Linux Debian12系统中安装VirtualBox虚拟机无法使用USB设备的问题

Debian12系统中安装VirtualBox&#xff0c;再VirtualBox虚拟机中无法使用 USB设备。如下图所示&#xff1a; 解决方法如下&#xff1a; 1.安装 Virtualbox增强功能。如下图所示&#xff1a; 2.添加相关用户、用户组&#xff08; Virtualbox 装完成后会有 vboxusers 和 vboxs…

Linux 网络驱动实验(PHY芯片LAN8720)

目录 嵌入式网络简介嵌入式下的网络硬件接口MII/RMII 接口MDIO 接口RJ45 接口I.MX6ULL ENET 接口简介 PHY 芯片详解PHY 基础知识简介LAN8720A 详解SR8201F 详解 Linux 内核网络驱动框架net_device 结构体net_device_ops 结构体sk_buff 结构体网络NAPI 处理机制 I.MX6ULL 网络驱…

SQL SERVER 表分区

1. 概要说明 SQL SERVER的表分区功能是为了将一个大表&#xff08;表中含有非常多条数据&#xff09;的数据根据某条件&#xff08;仅限该表的主键&#xff09;拆分成多个文件存放&#xff0c;以提高查询数据时的效率。创建表分区的主要步骤是 1、确定需要以哪一个字段作为分…

vite vue3 ts 使用sass 设置样式变量 和重置默认样式

1.安装scss 样式支持依赖 yarn add -D sass 2.使用sass <div><!-- 测试使用sass --><h1>测试使用sass</h1> </div><style scope lang"scss"> div {h1 {color: red;} } </style> 效果&#xff1a; 3.通过npm下载并复制…

Spring Cloud之Gateway网关学习【详细】

目录 统一网关Gateway 网关的实现 搭建网关 编写配置文件 路由断言工程 路由的过滤器 全局过滤器 网关过滤器执行顺序 网关的cors跨域配置 问题及解决 统一网关Gateway 网关的实现 SpringCloud中存在两种网关 gateway&#xff1a;基于Spring5中提供的WebFlux实现&a…

Unity 粒子特效-第三集-星星闪烁特效

一、特效预览 二、制作原理 星星素材资源 链接&#xff1a;https://pan.baidu.com/s/17D-9sC-ErtqmUxl81Ln1Mw?pwdndm9 提取码&#xff1a;ndm9 1.素材介绍 仔细看&#xff0c;我们的粒子贴图是&#xff08;如下&#xff09;&#xff0c;一颗星星 2.步骤介绍 1.星星动画的…