python格式符加类型码整数为什么是%d_Python学习之语法学习

本文介绍了Python的基本数据类型,如整数、浮点数、字符串、布尔和空值。讲解了字符串的拼接和打印,以及ord()和chr()函数的使用。重点讨论了Python的格式化字符串,包括%d等类型码的含义,并提供了实例。还简要提到了其他数据类型如列表、元组、字典和集合的操作。
摘要由CSDN通过智能技术生成

每个语言都有自己独特的语法

数据类型

python支持以下几种基本数据类型:整数、浮点数、字符串、布尔、空值;另外还有类似对象的类型list(数组)、tuple(元组)、dict(Map)、set(集合)

基本数据类型

整数和浮点数

>>> a=1

>>> b=1.1

上面,a是整数,b是浮点数,整数与浮点数计算结果为浮点数。

字符串

严格来说,字符串算是一种对象类型,但和java一样字符串是一种不可变对象类型。

和js一样,字符串是使用单引号或双引号括起来的任意文本,字符串之前用“+”号链接可以拼接字符串,如下:

>>> a='我是一个字符串'

>>> b="我也是一个字符串"

>>> c="\n我用了一个换行符号"

>>> a+b+c

'我是一个字符串我也是一个字符串\n我用了一个换行符号'

>>> print(a+b+c)

我是一个字符串我也是一个字符串

我用了一个换行符号

print()用于打印字符串

“…”符号用于代替换行,提高可读性。。。

>>> a='''line1

... line2

... line3'''

>>> a

'line1\nline2\nline3'

ord()和chr()函数

ord函数用来显示一个字符的ascii码,chr函数用来将ascii码转为字符。

>>> ord('e')

101

>>> chr(101)

'e'

>>> ord('ee') #参数只能是一个字符,否则会抛出如下异常

Traceback (most recent call last):

File "", line 1, in

TypeError: ord() expected a character, but string of length 2 found

使用占位符格式化

python的格式化方法c语言几乎一样,我总是记不住,网上抄一个吧

格式

描述

%%

百分号标记

%c

字符及其ASCII码

%s

字符串

%d

有符号整数(十进制)

%u

无符号整数(十进制)

%o

无符号整数(八进制)

%x

无符号整数(十六进制)

%X

无符号整数(十六进制大写字符)

%e

浮点数字(科学计数法)

%E

浮点数字(科学计数法,用E代替e)

%f

浮点数字(用小数点符号)

%g

浮点数字(根据值的大小采用%e或%f)

%G

浮点数字(类似于%g)

%p

指针(用十六进制打印值的内存地址)

%n

存储输出字符的数量放进参数列表的下一个变量中

>>> a="我的名字叫%s,我今年%d岁了"

>>> print(a % ('john', 31))

我的名字叫john,我今年31岁了

bytes

bytes算是一种独立的数据类型,但它与字符串类型一般分不开

encode()函数可以将字符串转换为对应字符集的bytes

>>> a='我是一个字符串'

>>> b=b'我是一个字符串'

File "", line 1

SyntaxError: bytes can only contain ASCII literal characters.

>>> b=b'hello world'

>>> print(b)

b'hello world'

>>> a.encode('utf-8')

b'\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'

布尔

True和False,注意大小写

空值

None相当于java的null,注意大小写

数组(list)

python初始一个数组的方式和js很像

>>> array_1=['aa','bb','cc']

>>> array_2=[11,22,33]

>>> array_3=['aa',11,'cc']

>>> empty_array=[]

>>> len(empty_array)

0

len()函数可以获得数组的长度,和java一样,数组的下标也是从0开始的,超过下标范围也会报数组越界

但数组的下标可以是负数,表示从后往前的顺序

>>> array_1[0]

'aa'

>>> array_2[3]

Traceback (most recent call last):

File "", line 1, in

IndexError: list index out of range

>>> array_2[-1]

33

>>> array_2[-2]

22

append()、insert()、pop()

append(element)函数是在数组�末尾追加元素

insert(index, element)是在指定的位置插入元素

pop(index)是删除指定位置的元素,如果不指定index,则删除末尾的元素

>>> array_1

['aa', 'bb', 'cc']

>>> array_1.append('dd')

>>> array_1

['aa', 'bb', 'cc', 'dd']

>>> array_1.insert(2,'ff')

>>> array_1

['aa', 'bb', 'ff', 'cc', 'dd']

>>> array_1.pop()

'dd'

>>> array_1

['aa', 'bb', 'ff', 'cc']

>>> array_1.pop(1)

'bb'

>>> array_1

['aa', 'ff', 'cc']

元组(tuple)

元组一种初始化后就不能修改的数组,初始化时用"("和")"表示

>>> t=(1111,'bbbb',array_1) # 元组的三个元素在初始化时就确定了,但你可以通过修改array_1变量的值来变相地修改元组t的值

>>> print(t)

(1111, 'bbbb', ['aa', 'ff', 'cc'])

字典(dict)

字典类型有些类似与java中的map,是一种key-value的数据结构

>>> dict={"aa":33432, "bb": "I'm a string", "cc":"dddd"} # 初始化一个dict变量

>>> dict["aa"] # 如何访问dict中的值

33432

>>> dict["bb"]

"I'm a string"

>>> dict["dd"] # 如果key不存在,会抛出异常

Traceback (most recent call last):

File "", line 1, in

KeyError: 'dd'

>>> "dd" in dict # 判断一个key是否存在

False

>>> "aa" in dict

True

>>> print (dict.get("dd")) # 使用get方法,不取不存在的key,返回None

None

>>> print (dict.get("dd", "I got nothing")) # get函数的第二个参数表示,如果返回None则用第二个参数代替

I got nothing

>>> dict["dd"] = "ddddddd" # 往dict里添加一个值,如果有相同的key,则覆盖原来的值

>>> dict.get("dd")

'ddddddd'

>>> dict

{'dd': 'ddddddd', 'cc': 'dddd', 'aa': 33432, 'bb': "I'm a string"}

>>> dict.pop("dd") # pop方法从dict中删除一个key

'ddddddd'

>>> dict

{'cc': 'dddd', 'aa': 33432, 'bb': "I'm a string"}

>>>

set

set可以认为是一个值不能重复的数组

>>> s = set([1, 1, 2, 2, 3, 3])

>>> s

{1, 2, 3}

>>> s2 = set([1,"33",dict]) # set的值里不能放不可HASH的数据类型

Traceback (most recent call last):

File "", line 1, in

TypeError: unhashable type: 'dict'

>>> s2 = set([1,"33",3.44])

>>> s2

{1, 3.44, '33'}

变量

命名方式,只能使用大小写英、数字和"_"组合,不能以数字开头

另外,python是大小写敏感的语言,因此要注意大小写。

与java不同,python是�动态语言,在声明一个变量时,不需要指定变量的数据类型,这一点和js一样。

控制流语句

条件判断

python做条件判断的关键字是"if"、"elif"、"else"

if :

elif :

elif :

else:

判断条件可以直接是一个变量,只要这个变量是非零数值、非空字符串、非空list等,就判断为True,否则为False

循环

循环有两种写法一种是for...in,一种是while

for主要用于遍历一个数组之类的结构,else部分为可选,在循环执行完成后执行

>>> for ele in array_1:

... print(ele)

... else

... print("over!")

aa

ff

cc

over!

while则是只要满足条件,就不断循环,条件不满足时退出

>>> n = 0

>>> sum = 0

>>> while n <= 100:

... sum=sum+n

... n=n+1

...

>>> print(sum)

5050

break语句用来终止循环

contine用来路过本次循环中的剩余部分

代码缩进

代码缩进是难以接受的python一个特性,代码块不是用{}括起来,而是通过缩进。。。看上面while的例子,第4、5行必须在前面加上一个Tab,否则不在循环体中执行。如此简洁的设计是为啥??

运算符

四则运算

最简单和常用的,需要记牢

运算符

名称

说明

举例

+

两个对象相加

3 + 5得到8。'a' + 'b'得到'ab'

-

两个数相减

-5.2得到一个负数。50 - 24得到26

*

两个数相乘或是返回一个被重复若干次的字符串

2 * 3得到6。'la' * 3得到'lalala'

**

返回x的y次幂

3 ** 4得到81(即3 * 3 * 3 * 3)

/

x除以y

4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333

//

取整除

返回商的整数部分

4 // 3.0得到1.0

%

取模

返回除法的余数

8%3得到2。-25.5%2.25得到1.5

条件运算符

这也都是程序中常用的

运算符

名称

说明

小于、小于等于

返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

>、>=

大于、大于 等于

返回x是否大于y

==

等于

比较对象是否相等

!=

不等于

比较两个对象是否不相等

not、and、or

布尔“非”、 “与”、 “或”

如果x为True,not x返回False、如果y为False,x and y返回False,x or y 返回 True

位运算

这种不会就算了,会就要精通,否则等于不会

运算符

名称

说明

举例

<<

左移

把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)

2 << 2得到8——2按比特表示为10

>>

右移

把一个数的比特向右移一定数目

11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5

&

按位与

数的按位与

5 & 3得到1

竖线

按位或

数的按位或

5 竖线 3得到7

^

按位异或

数的按位异或

5 ^ 3得到6

~

按位翻转

x的按位翻转是-(x+1)

~5得到6

函数

定义函数

python 定义一个函数的语法如下

>>> def 函数名称 (参数列表...) :

>>> 代码块

参数

函数的参数列表可以有多个,在定义时可以给参数添加默认值

>>> def func( a, b=100, c='str' ) :

... print ( "a=[%s], b=[%d], c=%s" % (a, b, c) )

... return None # return None相当于没有return,也可以return其它类型

调用函数时,可以不传参数,也可以指定参数

>>> func( "hello" ) # 只传参数a,b、c用者是默认值

a=[hello], b=[100], c=str

>>> func() # 什么参数都没传,a不能为空

Traceback (most recent call last):

File "", line 1, in

TypeError: func() missing 1 required positional argument: 'a'

>>> func( "hello", c="world" ) # 指定了参数c,这时就无所谓参数列表的顺序了

a=[hello], b=[100], c=world

>>> func( "hello", c="world", b=25 ) # 这个例子也用来说明,指定参数列表调用方式

a=[hello], b=[25], c=world

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值