美文网首页
1.3 基础-变量与字符

1.3 基础-变量与字符

作者: 张都尉 | 来源:发表于2019-09-17 17:25 被阅读0次

初学者经常会遇到的困惑,在看书上的或听课都懂,但还是不明白要怎么编程,这是因为缺乏足够的经验。
在学习时,也请在自己操作也模仿敲一下自己的代码,学以致用,在输入代码时的仔细:小到中文标点或英文标点,大到语句的逻辑关系。同时也会发现在运行成功后自己的那份喜悦。
所以,你需要在阅读时打开IDE,为了方便起见我们这里使用anacoda来做为我们使用的IDE,好处就不用多说,集成所有环境,同时还有markdown标记,学习时可以录入笔记也可执行代码。边看边敲代码。这样学习有记录才会有收获。

变量

简单的说,变量就是编程中最基本的存储单位,变量会暂时性的存储你所放进去的内容。



这是windows下python3的IDE环境 当我们定义了变量a = 2019,这样就完成了对a的赋值,接下来输入回车并换行行,你看将看到的结果是2019
这里请注意的是 python对大小写敏感,也就是说a和A完全是两个不同的变量名称,而不是同一个。即便变量是最容易理解的基础知识,那也不要因为简单就随意命名,要保持python的可读性。

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 2019
>>> a
2019
>>>

print()

打印是python中最为常见的功能,顾名思义。我们现在就演示一下如上的 打印变量a内容

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 2019
>>> print (a)
2019
>>>

接下来我们看一段代

file = open('/usr/yourname/Desktop/filte.txt','w')
file.write('hello world!')

从字面的意思,打开桌面的一个文件,并写入hello world! w代表如果旧面有file.txt这个文件就直接写入"hello word",如果没有file.txt这个文件就创建一个这样的文件
这里要注意的就是保持良好的命名习惯 ,应该尽量的用英语命名,学编程时同时还能背单词。

扩展阅读

字符串

字符串是什么?分如下三种方式

  • 任何在这双引号之间的文字 “thist is a string”
  • 任何在这单引号中间的文字,单引号其实和双引号完完一样 ‘this is a string’
  • 三个引号被用于过于长段的文字或者说明,只要三引号不完,你就可以随意换行写下文字 '''三个引号'''

  • 字符串的基本用法
    现在我们尝试着了解一些字符串的基本用法----合并。
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 plays guitar
[Finished in 0.4s]

最终的输出结果就是上面合并内容
也许你会注意到,上面我们说的变量时,有些变量被不同形式的赋值,我们现在试着在IDE中这样做:

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

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



这里说一句,如果你不知道变量是什么类型,那么可以通过type() 函数来查看类型。如在IDE中输入print(type(word))
另外,由于中文注释会导致报错,所以需要在文件开头加一下行魔法注释 #coding:utf-8

print(type(word))
class 'str'

按下来,我们来转化数据类型

#coding:utf-8
num = 1
string = '1'
num2 = int(string)
print(num + num2)
输出结果

既然字符相加可以,那么字符串之间能不能相乘呢? 当然可以,输入如下代码:

#coding:utf-8
words = 'hello'*3
print(words)
hellohellohello

接下来我们来尝试解决一个更复杂的问题

word = 'a loooooong word'
num = 12
string = 'bang!'
total = string * (len(word) - num) #等价于字符串'bang!'*4 
print(total) 
bang!bang!bang!bang!

到这里相当四则运算一般简单

  • 字符串的分片与索引
    字符串可以通过 string[x]的方法进行索引、分片。也就是加一个[]。字符串的分版本(slice)实际上可以看作是字符串中找出来你要截取的东西,复制出来一小段你要的长度,然后存储在另一个地方,而不会对字符串这个源文件改动。分片获得的每个字符串可以看作是原字符串的一个副本。
    我们先来看如下代码,进行分析
name = 'My name is Jim'
print(name[0])
print(name[-2])
print(name[0:7])
print(name[3:])
print(name[:3])
结果:
M
i
My name
name is Jim
My 


以name[0-7]为例,截取的编号从0到7字符,但不包含第7个字符结束
像name[3:]这样的写法代表着编号为3的字符到结束字符串片段
像name[:3]则代表从编号0开始到3的字符,但不包含第3个字符

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

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

运行结果为:fiend
注: 过长的代码可以使用‘\’来换行,属于一行的代码同时会一个缩进表示一行的,如果在IDE中要按“enter”就会自动换行,这个很方便


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

'[http://ww1.site.cn/14d2e8ejw1exjogbxdxhj20ci0kuwex.jpg'](http://ww1.site.cn/14d2e8ejw1exjogbxdxhj20ci0kuwex.jpg')

'[http://ww1.site.cn/85cc87jw1ex23yhwws5j20jg0szmzk.png'](http://ww1.site.cn/85cc87jw1ex23yhwws5j20jg0szmzk.png')

'[http://ww2.site.cn/185cc87jw1ex23ynr1naj20jg0t60wv.jpg'](http://ww2.site.cn/185cc87jw1ex23ynr1naj20jg0t60wv.jpg')

'[http://ww3.site.cn/185cc87jw1ex23yyvq29j20jg0t6gp4.gif'](http://ww3.site.cn/185cc87jw1ex23yyvq29j20jg0t6gp4.gif')

针对如上URL我们执行如下代码

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

0kuwex.jpg 

0kuwex.jpg 这样你会得到这样的结果

字符串的方法

  • python是面向对象进行编程的语言,而对象拥有各种功能、特性,专业术语称之为----方法(method)。为了方便理解,我们假定日常生活中的的车是“对象”,即car。然后众所周知,汽车还有很多特性和功能,其中“开”就是一个汽车重要的功能,于是汽车这个对象使用‘开’这个功能,我们在python编程中就可以表述成这样 car.drive()


  • 在理解了对象的方法后,我们来看这样的一个场景,很多时候你使用手机号在网站注册帐户信息,为了保证用户的信息安全,通常帐户信息只会显示后四位,其余则由‘*’来代替,我们就试着用字符串的方法来完成这一功能



    输入代码:

phone_number = '151-012-28308'
hiding_number = phone_number.replace(phone_number[:9],'*' * 9)
print(hiding_number)

其中我们使用了一个新的字符串方法replace()进行“遮挡”。repalce方法的括号中,第一个phone_number[:9]代表要被替换的部分,后面''9表示将要替换成什么字符,也就是乘以9,显示9个号,从而得到最终的结果:*********8308
我们来尝试解决一个复杂的问题,来模拟手机通讯录的电话号码联想功能,这里只是演示一下大体的思路,真实实现的情况可能远比这复杂。

输入代码:
search = '168'
num_a = '1386-168-0006'
num_b = '1681-222-0006'
print(search + ' is at ' + str(num_a.find(search)) + ' to '+ str(num_a.find(search) + len(search)) + ' of num_a') print(search + ' is at ' + str(num_b.find(search)) + ' to '+ str(num_b.find(search) + len(search)) + ' of num_b')

结果:
168 is at 5 to 8 of num_a
168 is at 0 to 3 of num_b

字符串格式华符

____a word she can get what she ____ for.

A.With B.came
如上 像这样的填空题会让我印象深刻,当字符串中有多个这样的“空”需要填写时,我们可以使用.format()进行处理,它的基本使用方法有如下几种,输入如下三段代码,相当于三种方法均可实现:

print('{} a word she can get what she {} for.'.format('With','came'))
print('{preposition} a word she can get what she {verb} for'.format(preposition = 'With',verb = 'came')) print('{0} a word she can get what she {1} for.'.format('With','came'))

这种字符串填空的方式使用很广泛,例如下面这段代码,可以填充网址中的空缺的城市数据

city = input ("write down the name of city:")
url = "http://apistore.baidu.com/microservice/weather?citypinyin={}".format(city)

此处只是部分百度api实现客户端天气插件代码的片段

本单节到这里就了解了变量和字符串基本概念和常用的使用方法。

相关文章

  • 1.3 基础-变量与字符

    初学者经常会遇到的困惑,在看书上的或听课都懂,但还是不明白要怎么编程,这是因为缺乏足够的经验。在学习时,也请在自己...

  • 测试文章

    1.3 变量和常量命名 名称能够包含大部分字符,包括 Unicode 字符。但是不能包含以下字符:空格、数学符号、...

  • shell(2)变量的核心基础知识与实践

    shell(2)变量的核心基础知识与实践 什么是shell变量 变量就是用一个固定的字符串(也可能是字符、数字等的...

  • shell(2)变量的核心基础知识与实践

    shell(2)变量的核心基础知识与实践 什么是shell变量 变量就是用一个固定的字符串(也可能是字符、数字等的...

  • 00-变量,循环

    复习要点 1.变量,运算符,条件判断,循环 1.1变量的基础常识 1.2变量的声明 1.3变量的作用域 注意:全局...

  • redis 学习整理

    本文是《redis设计与实现》的学习整理。 1 基础数据结构 1.1 字符串 1.2 链表 1.3 哈希表 1.4...

  • 2017 10 17

    今天一天就C#语言基础进行学习主要内容包括:字符类型、变量与常量、String类型等内容。 声明变量: 变量类型 ...

  • Python基础

    Python基础一 数据类型与变量 字符串: 'abc'与"abc" 均可表示字符串,不论单双引号。布尔值:Tru...

  • shell环境变量与变量赋值

    环境变量与变量赋值 环境变量与变量赋值 1 环境变量1.1 变量的格式1.2 查看环境变量1.3 使用函数添加环境...

  • 笔记:python语言基础与核心技巧知识点总结

    一、python语言基础 python基础语言的详细操作演示 1.1变量 1.2数据类型 1.3序列 序列分类:可...

网友评论

      本文标题:1.3 基础-变量与字符

      本文链接:https://www.haomeiwen.com/subject/woiquctx.html