博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的python之路(三):什么是代码与python的基本类型+字符串
阅读量:5864 次
发布时间:2019-06-19

本文共 5527 字,大约阅读时间需要 18 分钟。

3.1 什么是代码?

1、什么是代码

代码是现实世界事物在计算机世界中的映射2019-05-01

2、什么是写代码

写代码是将现实世界中中的事物用计算机语言来描述 

注:Python源代码的注释有两种方式,分别是单行注释和多行注释:

  • Python使用#号表示单行注释的开始,跟在#号后面直到这行结束为止的代码都将被解释器忽略。单行注释就是在程序中注释一行代码,在Python程序中将#号放在需要被解释的内容之前就可以了。
  • 多行注释是指一次性将程序中的多行代码注释掉,在Python程序中使用三个单引号或三个双引号将注释的内容括起来
>>>  #这是一行简单的注释>>> print("hello world")hello world

 

3.2 python 数字:整形与浮点型

number:数字(整数、小数)

在Python中:整数用int 表示;浮点数用float表示。

其他语言中浮点数还有单精度与双精度的划分:单精度(float)、双精度(double),双精度比单精度精度要高,但在python中,没有这种划分,python的浮点数就是双精度。

其他语言中整数有:short ,int , long的划分,Python没有。

用type 函数可以看出这个数字属于哪一类:

>>> type(1)
>>> type(-1)
>>> type(1.1)
>>> type(1.111111)
>>> type(1+1.0)
>>> type(1+0.1)
>>> type(1+1.0)
>>> type(1*1)
>>> type(1*1.0)
>>> type(2/2)
注意

补充:单斜杠“/”与双斜杠“//”的区别

单斜杠是除法,是自动的转成浮点数,双斜杠是整除

>>> 2/21.0>>> 2//21>>> 1/20.5>>> 1//20

 

3.3 10、2、8、16进制

10进制,2进制,8进制,16进制

比如表示数字10,在不同的进制里python如何区分?

如何在不同的进制之间做转换?

1、在python里表示二进制需要在二进制的数字前面加上:0b,例如二进制10,11用二进制表示后,敲回车键自动转化为十进制:

>>> 0b102>>> 0b113

2、在python里表示八进制需要在八进制的数字前面加上:0o,例如八进制10,11用八进制表示后,敲回车键自动转化为十进制:

>>> 0o108>>> 0o119

3、在python里表示十六进制需要在十六进制的数字前面加上:0x,例如十六进制10,1F用十六进制表示后,敲回车键自动转化为十进制:

>>> 0x1016>>> 0x1F31

注:以上默认为由其他进制转化为十进制,那么若是其他的进制该如何转化呢?

1、向二进制转换:利用函数bin():

>>> bin(10)'0b1010'>>> bin(0o7)'0b111'>>> bin(0xE)'0b1110'

2、向十进制转换:利用函数int():

>>> int(0o111)73>>> int(0b111)7>>> int(0o77)63

3、向十六进制转换:利用函数hex():

>>> hex(888)'0x378'>>> hex(0o777)'0x1ff'

4、向八进制转换:利用函数oct();

>>> oct(0b111)'0o7'>>> oct(0x777)'0o3567'

3.4 布尔类型与复数

bool布尔类型:表示真、假

complex复数

对于bool类型,可以用type函数来看一下True以及False归为哪一类:bool;可以用int函数把True和False转化为十进制数字:可以看到true为1;false为0。

>>> TrueTrue>>> FalseFalse>>> type(True)
>>> type(False)
>>> int(True)1>>> int(False)0>>> bool(1)True>>> bool(0)False

 那问题来了,是不是只有数字1表示true,而数字0表示false呢?不是这样的!

>>> bool(2)True>>> bool(2.2)True>>> bool(-1.2)True>>> bool(0)False

以上事例表明了只要是非零数值表示的就是布尔真,只有零表示的是布尔假,二进制同样如此:

>>> bool(0b01)True>>> bool(0b0)False

并不是只有数字才能代表布尔类型,或者是只有数字才能与布尔类型之间做一个转化,比如字符串、列表:

>>> bool('abc')True>>> bool('')False>>> bool([1,2,3])True>>> bool([])False>>> bool({1,1,1})True>>> bool({})False
>>> bool(None)False

零、空值都会被认为是false.

3.5 字符串

  • 变量

    简单的说,变量就是编程中最基本的存储单位,变量会暂时性地储存你放进去的东西。正如每个人都有姓名一样,变量的名字叫做标识符。

对于answer=42,其中answer叫做标识符;“=”为赋值符;42为其值。

    例如a=12,这样就完成了a的赋值,回车换行输入“a”,再回车后,赋值的结果为12。需要注意的是,Python对大小写敏感,也就是说“a”和“A”会是两个不同的变量,而不是同一个。

  • 字符串

    字符串(String),是由零个或多个字符组成的有限串行,一般记为s=a[1]a[2]...a[n]。就是“任何在这双引号之间的文字”,;'单引号和双引号完全一样';'''三个引号被用于过于长段的文字或者是说明,只要三引号不完,你就可以随意换行写下文字'''

    注:为什么会有单引号和双引号两种形式呢?比如说,字符串let's go,若用单引号则会出错,必须用双引号!

    字符串的本质是:字符序列。Python的字符串是不可变的,我们无法对原字符串做任何修改,但可以将字符串的一部分复制到新创建的字符串中,达到“看起来修改的效果”。Python不支持单字符类型,单字符也是作为一个字符串使用的。 

      在print后面,打印的都是字符串。注:是双引号里面的是字符串,引号不是字符串的组成部分,他是在告诉计算机,它里面包裹着的是一个字符串。也就是说在Python中,通常用一对双引号或者单引号来包裹一个字符串。或者说,要定义一个字符串,就用双引号或者单引号。

      但这里有一个问题,如果我要把下面这句话:小明说“我没有烧圆明园”;what's your name?看做一个字符串,应该怎么做?

      这里需要利用转义符\ .

      本来双引号表示包括字符串,他不是字符串的一部分,但是如果前面有转义符,那么他就失去了原来的含义,转化成字符串的一部分,相当于一个特殊字符了。 

>>> "小明说:\"我没有烧圆明园\""'小明说:"我没有烧圆明园"'>>> 'what\'s your name'"what's your name

      另外,双引号和单引号还可以相互嵌套,双引号包裹单引号,则单引号是字符;单引号包裹双引号,则双引号是字符。

  • 使用方法修改字符串的大小写

      对于字符串,可执行的最简单的操作之一是修改其中的单词的大小写。具体操作是在变量后面加上.title(),其作用是将每个单词的首字母都改为大写,例如:

>>> name="ada lovelace">>> print(name.title())Ada Lovelace

   其中,在name.title()中,name后面的句点.让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作,这种信息是在括号内提供的。函数title()不需要额外的信息,因此他后面的括号是空的。

   另外还有几个函数对字母进行大小写改变,比如:.upper()可以将字符串改为全部大写;.lower()可以将字符串全部改为小写,用法与.title()一样。

  • 合并(拼接)字符串(字符串的运算)

  对数字,有一些简单的操作,比如四则运算:3+5,就计算出为8。那么对于字符串来说会有一些变化:

>> 'py'+'thon''python'

 

>>> 'hello'*3'hellohellohello'
>>> "hello"[0]'h'>>> "hello"[3]'l'

 

>>> "hello"[0:4]'hell'>>> "hello"[0:5]'hello'
"hello"[0:-1]'hell'
>>> "hello world"[6:11]'world'>>> "hello world"[6:-1]'worl'
"hello world"[6:]          'world'

 

注:字符串与数字的连接不能使用加号,否则会提示:cannot concatenate 'str' and 'int' objects.但有三种其他的方法可以连接数字与字符串”,如下例(其中a=1898;b="free"为字符串。)

  • print b+`a`    (注意,``不是单引号,是反引号,是键盘上面上面数字1前面的符号)
  • print b+str(a)   (str(a)实现将整数对象转化为字符串对象)
  • print b+repr(a)   (repr与第一种方法是一致的,它是一个函数)

  求职时,面试官可能会问他们的区别:首先repr()和``是一致的,不用区别;主要是区别repr()和str,一个最简单的区别就是:repr是函数,str是跟int一样,一种对象类型。

  • 使用制表符或换行符来添加空白
  1. \n   换行符
  2. \'    单引号
  3. \t    横向制表符

       在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。可以使用空白来组织输出,以使其更易读。

       要在字符串中添加制表符,可使用字符组合\t,例如:

print('\tPython')    Python

   要在字符串中添加换行符,可使用字符组合\n:

>>> print('language:\nPython\nC\nJavaScript')language:PythonCJavaScript

  还可在同一个字符串中同时包含制表符和换行符,字符串“\n\t”让Python换到下一行,并在下一行开头添加一个制表符,比如:

print('language:\n\tPython\n\tC\n\tJavaScript')language:    Python    C    JavaScript

  那么问题来了,我如何在python中输出hello \n world呢?要求这个反斜杠n不会消失:

print('hello \n world')hello  world>>> print('hello \\n world')hello \n world

  那么他的作用是什么呢?有时候我们会输出一个文件夹的路径,但里面有时候会有\n,python会把他自动的识别成转义符。

>>> print('c:\\northwind\\northwest')c:\northwind\northwest>>> #另一种方法是在前面加r',这样后面的字符串就不是一个普通字符串了,而是一个原始字符串>>> print('c:\northwind\northwest')c:orthwindorthwest>>> print(r'c:\northwind\northwest')c:\northwind\northwest

 

  • 删除空白

  Python能够找出字符串开头和末尾多余的空白,要确保字符串末尾没有空白,可使用方法rstrip()。

>>> favorite_language='python '>>> favorite_language'python '>>> favorite_language.rstrip()'python'>>> favorite_language'python '

  储存在变量favorite_language中的字符串包含多余的空白,在终端会话中向Python询问这个变量的值时,可看到末尾的空格,对变量favorite_language调用rstrip()后,这个多余的空格就被删除了,但是这种删除只是暂时的,接下来再次询问favorite_language的值时,这个字符串与输入时一样,依然会有多余的空白。

 

      要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:

 

       因此,为删除字符串中的空白,需要将其末尾的空白删除,再将结果存回到原来的变量中。

       还可以剔除字符串开头的空白,或者剔除字符串两端的空白,为此可分别使用方法lstrip()和strip()。

 

转载于:https://www.cnblogs.com/haohanTL/p/10800401.html

你可能感兴趣的文章
【爬坑日记】基于vue cli+vuex+axios+iview+sass初始化项目步骤
查看>>
浅谈event loop
查看>>
如何用sysbench做好IO性能测试
查看>>
Spring Boot In Practice (1):Redis缓存实战
查看>>
【Lolttery】项目开发日志 (一) 微服务框架搭建
查看>>
快速使用七牛云对象存储
查看>>
webapck由浅入深——(Tapable)
查看>>
ButterKnife 原理解析
查看>>
说说Chrome插件从开发调试到打包发布
查看>>
搬运工---工具类(三方库)
查看>>
Android开发 手机开发者模式
查看>>
Paint的用法总结
查看>>
正则:验证一个有效数字
查看>>
如何进行架构方案选型和推进【Docker】
查看>>
一、(基础知识)一个前端程序员的java小白之路
查看>>
手把手教你如何在Android下进行JNI开发(入门)
查看>>
设计模式之AOP
查看>>
Android Studio jni - 入门篇
查看>>
promise,then,setTimeout -- 细致探讨执行流程
查看>>
不断发展的“爸妈游”产品真如表面看起来的那样美好?
查看>>