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)
<class 'int'>
>>> type(-1)
<class 'int'>
>>> type(1.1)
<class 'float'>
>>> type(1.111111)
<class 'float'>
>>> type(1+1.0)
<class 'float'>
>>> type(1+0.1)
<class 'float'>
>>> type(1+1.0)
<class 'float'>
>>> type(1*1)
<class 'int'>
>>> type(1*1.0)
<class 'float'>
>>> type(2/2)
<class 'float'>注意
补充:单斜杠“/”与双斜杠“//”的区别
单斜杠是除法,是自动的转成浮点数,双斜杠是整除
>>> 2/2
1.0
>>> 2//2
1
>>> 1/2
0.5
>>> 1//2
0
3.3 10、2、8、16进制
10进制,2进制,8进制,16进制
比如表示数字10,在不同的进制里python如何区分?
如何在不同的进制之间做转换?
1、在python里表示二进制需要在二进制的数字前面加上:0b,例如二进制10,11用二进制表示后,敲回车键自动转化为十进制:
>>> 0b10
2
>>> 0b11
3
2、在python里表示八进制需要在八进制的数字前面加上:0o,例如八进制10,11用八进制表示后,敲回车键自动转化为十进制:
>>> 0o10
8
>>> 0o11
9
3、在python里表示十六进制需要在十六进制的数字前面加上:0x,例如十六进制10,1F用十六进制表示后,敲回车键自动转化为十进制:
>>> 0x10
16
>>> 0x1F
31
注:以上默认为由其他进制转化为十进制,那么若是其他的进制该如何转化呢?
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。
>>> True
True
>>> False
False
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> 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一样,一种对象类型。
- 使用制表符或换行符来添加空白
- \n 换行符
- \' 单引号
- \t 横向制表符
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。可以使用空白来组织输出,以使其更易读。
要在字符串中添加制表符,可使用字符组合\t,例如:
print('\tPython')
Python
要在字符串中添加换行符,可使用字符组合\n:
>>> print('language:\nPython\nC\nJavaScript')
language:
Python
C
JavaScript
还可在同一个字符串中同时包含制表符和换行符,字符串“\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:
orthwind
orthwest
>>> 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()。