python中变量与字符串详解!!

❄️作者介绍:奇妙的大歪❄️

🎀个人名言:但行前路,不负韶华!🎀

🐽个人简介:云计算网络运维专业人员🐽

前言

      初学者经常会遇到的困惑是,看书上或者是听课都懂,但还是不明白要怎么编程。这是因为缺乏足够多的实践。

      正如我们在婴儿时期学习说话的时候,最初是模仿父母的发音,逐渐才能学会表达自己的想法。学习编程也是一样,在你在阅读本篇文章的时候,需要模仿着示例敲一遍代码,不要怕麻烦,不要嫌简单,当年动手敲代码的时候,就会发现很多眼睛会忽略的细节:小到中午标点还是英文标点,大到语句之间的逻辑关系。当然,在你发现亲手写出的程序运行成功之后,你也会感到无比的喜悦,你能用程序计算数学题了!你能实现小功能了!我会带着你循序渐进地完成一个个实践,知道你有能力脱离模仿,开始创造。

目录

一.什么是变量?

二.print( )是什么

三.字符串是什么?

3.1字符串的基本用法

四.字符串的分片与索引


一.什么是变量?

        简单的来说,变量就是编程中最基本的储存单位,变量会暂时性地储存你放进去的东西。

        《银河系漫游指南》里面说“生命,宇宙以及任何事情的终极答案是42”,如果用编程语言来表达的话,就是如下等式,一个叫做“answer”的变量被赋值为42.正如每个人都有姓名一样。变量的名字就叫做标识符。

    现在我们来试着给变量赋值。为了最简单的完成这一步,Windows用户请打开命令行输入 Python 并回车,Mac用户打开终端输入 Python3 并回车,然后输入:

a = 12

    这样就完成了 a 的赋值,试着回车换行并输入“a”,再回车之后,你会看到赋值的结果是12.

    需要注意的是, Python 对大小写敏感,也就是说“a”和“A”会是两个不同的变量,而不是同一个

    这样,你就学会给变量起名字了,并且他们随叫随到。

二.print( )是什么?

    打印是 Python 中最常用的功能,顾名思义,我们现在就简单把   print()这个功能理解为展示打印的结果。使用方法是把你要打印查看结果的对象塞进括号中,这样就可以了。(如果你的 print 不用括号也能使用,请检查你的 Python 版本,为了方便快速理解编程概念和少走弯路,后面的所有例子都会用 Python 3.x实现。)

    如果你使用命令行或终端直接输入 print(a)你会得到下图的结果。这是因为你漏掉了变量的赋值, Python 是无法打印不存在的对象的。

     在今后的学习中我们还有很多很多的东西要进行“打印”,我们需要知道要打印的东西是什么。即便变量是最容易理解的基础知识,也不要因为简单就随意命名,一定要保持 Python 的可读性。

     看看下面这段代码,即便你现在不知道其中一些细节,但是读了一遍之后,你也能大概猜到这段代码做了什么事情把?

file = open('/Users/yourname/Desktop/fileW[W ','w') 
file.write('hello world!')

    这是你敲的第一段代码,所以在这里多说几句。首先需要主要语法问题,使用英文标点符号,大小写不用出错,空格不能少。其次要注意文件路径问题,你的桌面上不需要有 file.txt这个文件,但你需要知道你的电脑上桌面文件的路径是什么,然后把/Users/yourname/Desktop/替换掉。查看文件路径的方法是,Windows 用户资源管理器打开桌面上的一个文件,查看路径。Mac 用户打开终端 terminal,然后把桌面上的某个文件拖拽进去就可以查看到路径。

    这段代码打开了桌面上的 file.txt 文件,并写入了 hello world !w表示如果桌面上有 file.txt这个文件就直接写入 hello world ,如果没有file.txt 这个文件就创建一个这样的文件。

   互联网上有着诸多的代码和教程,但如果你没能一眼看懂这段代码是什么意思,其中有一多半是因为变量命名不清楚造成的。因此在随后的教程中,哪怕很啰嗦,我也会使用清晰的命名方式,从而来保证即便是没有计算机基础的人,也能够理解代码。

   要保持良好的命名习惯应该尽量使用英文命名,学编程的同时还能背单词,岂不是一举两得,过一阵子你就会发现英文教程也会阅读的很顺畅。

三.字符串是什么?

    在上面我们已经初步接触到了字符串,很简单地说,字符串就是“任何在这里双引号之间的文字”或者‘单引号其实和双引号完全一样’再或者‘‘‘三个引号被用于过于长段发文字或者是说明,只要三引号不完你就可以随意换行写下文字’’’

3.1字符串的基本用法

        现在我们来试着了解一些字符串的级别用法一一合并。请在你的 IDE(也就是前面推荐的 PyCharm)中输入如下代码,在 IDE 中代码并不能自动运行,所以我们需要手动点击运行,方法是点击右键,悬着“Run‘文件名’ ”来运行代码。

what_he_does = ' plays '
his_instrument = 'guitar'
his_name = 'Robert Johnson'
artist_intro = his_name + what_he_does + his_instrument
print(artist_intro)

你会发现输出了这样的结果:

      也许你会觉得无聊,但实际上这段代码加上界面之后是下图这样的,类似于你在音乐播放器里面经常看到的样子。Robert Johnson是著名的美国蓝调吉他手,被称为与魔鬼交换灵魂的人。

        注:本图的GUI图形界面采用了 Python 标准库 TKinter 进行实现。

      也许你已经注意到了,上面我们说到变量的时候,有些变量被进行不同形式的赋值。我们现在试着在 IDE 中这样做:

num = 1
string = '1'
print(num + string)

      你一定会得到如下的结果,原因是字符串(string)只是Python中的一种数据类型,另一种数据类型则称之为整数(integer),而不同的数据类型是不能够进行合并的,但是通过一些方法可以得到转换。

     插一句,如果你不知道变量是什么类型,可以通过 type()函数来查看类型。在 IDE 中输入print(type(word))

    另外,由于中午注释会导致报错,所以需要在文件开头加一行魔法注释#coding:utf-8,也可以在设置里面找到“File Encodings”设置为UTF-8。

   接下来,我们来转化数据类型。我们需要将转化后的字符存在另一个变量中,试着输入这些:

num = 1
string = '1'
num2 = int(string)
print(num + num2)

   这样被转换成了同种类型之后,就可以合并者两个变量了。

   我们来做一些更有意思的事情,既然字符串可以相加,那么字符串之间能不能相乘?当然可以!输入代码:

words = 'words' * 3
print(words)
wordswordswords

   好,现在我们试着解决一个更复杂的问题:

word = 'a loooooong word'
num = 12
string = 'bang!'
total = string * (len(word) - num) #ᒵհԭਁᒧԀ 'bang!'*4
print(total)

   到这里你就掌握字符串的最基本的用法了。

四.字符串的分片与索引

       字符串可以通过 string[x] 的方式进行索引,分片,也就是加一个[]。字符串的分片(slice)实际上可以看作是从字符串中找出来你要截取的东西,复制出来一小段你要的长度,储存在另一个地方,而不会对字符串这个源文件改动。分片获得的每个字符串可以看作是原字符串的一个副本。

       先来看下面这段代码。如果你对字符串变量后面一些莫名其妙的数字感到困惑和没有头绪的话,不妨对照着代码下面的这个表格来分析。

name = 'My name is Mike'
print(name[0])
'M'
print(name[-4])
'M'
print(name[11:14]) # from 11th to 14th, 14th one is excluded
'Mik'
print(name[11:15]) # from 11th to 15th, 15th one is excluded
'Mike'
print(name[5:]) 
'me is Mike'
print(name[:5]) 
'My na'

      :两边分别代表着字符串的分割从哪里开始,并到哪里结束。

      以name[1114]为例,截取的编号从第11个字符开始,到位置为14但不包含第14个字符结束。

      而像name[5]这样的写法代表着从编号为5的字符到结束的字符串分片。

      相反,name[5]则代表着从编号为0的字符开始到编号为5但不包含第5个字符的字符分片。可能容易搞混,可以想象成第一种是从5到最后面,程序原懒得数有多少个所以就省略地写。第二种是从最前面到5,同样是懒得写0,所以就写成了[5]。

      好,现在我们试着解决一个更复杂的问题,来做一个文字小游戏叫做——“找出你朋友中的魔鬼”。输入代码:

word = 'friends'
find_the_evil_in_your_friends = word[0]+word[2:4]+word[-3:-1] 
print(find_the_evil_in_your_friends)

     注:过长的代码段可以使用“\”来进行换行,属于一行的代码同时会有一个缩进代表是一行的,如果是在 IDE 中只要按“enrer”就能自动换行,很方便把?

如果运行正常,你就会发现这样的答案:fiend 

也就发现了朋友中的魔鬼。

再来看一个实际项目中的应用,同样是分片用法。

'http://ww1.site.cn/14d2e8ejw1exjogbxdxhj20ci0kuwex.jpg'
'http://ww1.site.cn/85cc87jw1ex23yhwws5j20jg0szmzk.png'
'http://ww2.site.cn/185cc87jw1ex23ynr1naj20jg0t60wv.jpg'
'http://ww3.site.cn/185cc87jw1ex23yyvq29j20jg0t6gp4.gif'

    在实际项目中 切片十分好用。上面几个网址(网址经过处理,所以你是打不开的)是使用python编写爬虫后,从网页中解析出来的部分图片链接,现在总共有500余张附有这样链接的图片要进行下载,也就是说我需要给这500张不同格式的图片(png.jpg.gif)以一个统一的方式进行命名。通过观察规律,决定以链接尾部倒数10个字符的方式进行命名,于是输入代码如下:

url = 'http://ww1.site.cn/14d2e8ejw1exjogbxdxhj20ci0kuwex.jpg'
file_name = url[-10:]
print(file_name)

 你会得到这样的结果:

0kuwex.jpg

 🎀看都看到这里啦留个三连再走吧!!你们的支持就是我的动力!!!🎀🎀🎀

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

django中url和视图函数path re_path views.py

目录 url的定义url的格式django中的urldjango中的创建自己的urldjango访问测试django中的path动态django中的path动态案例django中的path动态类型django中的path动态案例-计算器django的正则路由re_path() url的定义 url 统一资源定位符 url 用来表示互联网上某个资源的地址 …

详解c++---set的介绍

目录标题 set容器的介绍set的构造函数insert函数的介绍find函数erase函数count函数lower_boundupper_boundmultiset set容器的介绍 set容器可以看成我们上一篇文章学习的K结构的搜索二叉树,所以set容器不仅可以存储数据,还可以对数据进行排序和去重&…

新项目之初性能测试工作如何前移?

最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必须做性能测试&#xff0…

【Linux:进程间信号】

文章目录 1 生活角度的信号2 技术应用角度的信号3 信号的产生3.1 由系统调用向进程发信号3.1.1 signal3.1.2 kill3.1.3 raise 3.2 由软件条件产生信号3.3 硬件异常产生信号3.4 通过终端按键产生信号3.5 总结思考一下 4 信号的保存4.1信号其他相关常见概念4.2在内核中的表示4.3 …

命令行创建uniapp项目

命令行创建uniapp项目 除了使用HBuilderX工具可视化搭建项目外,DCloud官方还提供了一个脚手架用于命令行搭建项目。 环境安装 全局安装vue-cli npm i vue/cli4 -g建议使用vue-cli 4.x版本,vue-cli 5.x与webpack存在冲突,会导致运行报错 …

【软件测试】测试用例设计要点总结

文章目录 考试题型简答题(一) 等价类划分1.1 划分等价类1.2 设计测试用例 (二) 边界值分析2.1 列出边界值分析表2.2 设计测试用例 (三) 因果图分析3.1 确定原因和结果3.2 确定原因和结果之间的逻辑关系3.3 在因果图上使用标准的符号标明约束条件 (四) 判定表驱动4.1 将因果图转…

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么?利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么? ChatGPT是一个基于GPT-2模型的开源聊天机器人,它可以回答用户的问题,进行闲聊和提供各…

【头歌-Python】9.2 能带曲线绘制(project) 第1~3关

第1关:能带曲线绘制一 任务描述 本关任务:使用matplotlib绘制图形。 相关知识 为了完成本关任务,你需要掌握: 使用 matplotlib 绘制图形python 读取文件 python 读取文件 python读取文件可以用以下函数实现: # …

Java学习笔记(视频:韩顺平老师)4.0

如果你喜欢这篇文章的话,请给作者点赞哟,你的支持是我不断前进的动力。 因为作者能力水平有限,欢迎各位大佬指导。 目录 如果你喜欢这篇文章的话,请给作者点赞哟,你的支持是我不断前进的动力。 控制结构 顺序 分…

用了【WRITE-BUG数字空间】,其他文档软件可以卸载、注销账号了

都3202年了文档都进化成在线协同编辑文档了 让我看看谁还在用本地软件写文档啊~滋滋滋 使用【WRITE-BUG数字空间】云文档全键盘写作不是梦!铁汁,听我句劝,把本地软件卸载了奥,你把握不住~ 程序员兄弟姐妹们的最爱编辑器&#x…

TCP协议流程详解,抓包分析

目录 TCP概念TCP工作层TCP协议头部解析TCP抓包解析TCP三次握手,数据收发,四次挥手抓包TCP状态迁移 TCP概念 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议&…

【2023年计划大纲】2023年技术笔记大纲

2023年技术笔记写作计划 按照技术类型,计划写以下三个领域的笔记: (1)AUTOSAR标准体系的专业知识,T-BOX,BMS,VCU这几个产品的设计和核心开发。包括UDS协议,XCP协议,OS操作系统。 每一个产品和…

Spring Cloud Kubernetes配置使用详情

目录 一、 为什么你需要 Spring Cloud Kubernetes? 二、 Starter 三、 用于 Kubernetes 的 DiscoveryClient 四、Kubernetes 原生服务发现(service discovery) 五、Kubernetes PropertySource 的实现 1、使用 ConfigMap PropertySource …

【HTML】form标签

<form> 标签用于创建 HTML 表单&#xff0c;它是用于收集用户输入的重要元素。表单可以包含各种输入字段、按钮和其他交互元素&#xff0c;用于向服务器发送用户输入数据。 下面是一个简单的 <form> 标签的示例&#xff1a; <form action"/submit-form&q…

释放 OpenAI 和 ESP-BOX 的力量:ChatGPT 与乐鑫 SoC 融合指南

当前&#xff0c;我们正见证着一场技术革命&#xff0c;而 OpenAI 正处于这场变革的最前沿。其中最激动人心的创新之一就是ChatGPT&#xff0c;它运用自然语言处理的力量&#xff0c;打造出更加引人入胜、直观的用户体验。而将 OpenAI 的 API 与物联网设备相结合&#xff0c;更…

Redis集群部署

Redis集群部署 1.单机安装Redis2.Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试 3.搭建哨兵集群3.1.集群结构3.2.准备实例和配置3.3.启动3.4.测试 4.搭建分片集群4.1.集群结构4.2.准备实例和配置4.3.启动4.4.创建集群4.5.测试4.5.测试 本章是基…

java SSM 摄影作品网站myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 摄影作品网站系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

计算机网络-网络体系结构

目录 计算机网络的基本概念计算机网络的定义组成与功能计算机网络的分类按照网络的作用范围进行分类按照网络的使用者进行分类 计算机网络主要性能指标 计算机网络体系结构计算机网络协议、接口、服务等概念ISO/OSI 参考模型和 TCP/IP 模型OSI七层模型TCP/IP 模型封装与分用 计…

攻防渗透第四章(谷歌语法)

一、常用谷歌黑客语法 制定网站的URL site: 包含特定字符的URL inurl: 网页标题中包含特定字符 intitle: 正文中指定字符 intext: 指定类型文件 filetype 开发语言判断 site:163.com filetype:php site:163.com filetype:jsp site:163.com filetype:asp site:163.com filetype…

【裸机开发】内核时钟 PLL1 配置实验(一)—— 寄存器分析篇

本章主要会回答以下问题 &#xff1f; imx6u 的时钟源来自于哪 &#xff1f;为什么一个起始时钟源&#xff0c;最终分成了多路&#xff1f;不同的时钟源是如何与外设对应起来的&#xff1f;&#xff08;时钟树&#xff09;要配置内核时钟频率 有哪些步骤 &#xff1f;涉及到哪…