赞
踩
Python
语法采用缩进方式,以#
开头的语句是注释,当语句以:
为结尾时,缩进的语句视为代码块
Python
是动态语言,其变量本身类型不固定。与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错,Java
就属于静态语言
空值None
是Python
里一个特殊的值,None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值
a = -1;
if a>=0:
print(a)
else: #冒号下相同缩进部分视为在同一个代码块
print(-a)
print("hello")
print("你好")
# 单引号引起来是字符串
print('Hello')
# 逗号隔开输出不同内容,同时会自动填上一个空格
print('100+200=',100+200)
# 若不想要空格可以在print最后添加参数sep='',默认情况sep=' '
print('100+200=',100+200,sep='')
num = 15
# 也可以使用这种方式进行格式化输出
print(f"num是{num}")
# input()是输入函数,输入结果放入name变量,python不需要手动定义类型
name = input();
# 在提示语句后输入
name = input('请输入:');
计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
Python
可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1
,100
,-8080
,0
0x
前缀和0-9
,a-f
表示,例如:0xff00
,0xa5b4c3d2
10000000000
,很难数清楚0的个数。Python
允许在数字中间以_
分隔,因此,写成10_000_000_000
和10000000000
是完全一样的。十六进制数也可以写成0xa1b2_c3d4
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的
比如, 1.23 × 1 0 9 1.23\times 10^9 1.23×109 和 12.3 × 1 0 8 12.3\times 10^8 12.3×108 是完全相等的。浮点数可以用数学写法,如
1.23
,3.14
,-9.01
10
用e
替代,
1.23
∗
1
0
9
1.23*10^9
1.23∗109 就是1.23e9
,或者12.3e8
,0.000012
可以写成1.2e-5
字符串是以单引号
'
或双引号"
括起来的任意文本,比如'abc'
,"xyz"
如果字符串内部既包含单引号''
又包含双引号""
怎么办?可以用转义字符\
来标识,使特殊字符失去特殊含义
s = 'I\'m \"OK\"!'
# 输出:I'm "OK"!
print(s)
转义字符\
除了使特殊字符失去特殊含义,也能让部分字符得到特殊含义,比如\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\
表示的字符就是\
如果字符串里面有很多字符都需要转义,就需要加很多\
,为了简化,Python还允许用r''
表示''
内部的字符串默认不转义
# 输出\t
print(r'\t')
如果字符串内部有很多换行,用\n
写在一行里不好阅读,为了简化,Python
允许用'''...'''
的格式表示多行内容
# 输出 line1 line2 line3三行
print('''line1
line2
line3''')
布尔值和布尔代数的表示完全一致,一个布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python
中,可以直接用True
、False
表示布尔值,也可以通过布尔运算计算出来
布尔值可以用and【与】
、or【或】
和not【非】
计算
# 输出False
print(True and False)
# 输出True
print(not False)
# 输出False
print(17 > 18)
常量就是不能变的变量,比如常用的数学常数π
就是一个常量。在Python
中,通常用全部大写的变量名表示常量
PI = 3.14159265359
但事实上PI
仍然是一个变量,Python
根本没有任何机制保证PI
不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法
/
除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数//
,称为地板除,结果只保留整数部分# 输出为 3.0
print(9 / 3)
# 输出为 3
print(10 // 3)
a = 'ABC'
b = a
a = 'XYZ'
# 最终输出ABC
print(b)
a
赋给b
时,实际上是令b
指向了a
此时指向的常量数据ABC
b
本质指向的是数据,因此随后a
指向了新数据后并不会影响b
的指向b
最终指向的依然是ABC
Python
的字符串类型是str
,在内存中以Unicode
表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
在操作字符串时,我们经常遇到str
和bytes
的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8
编码对str
和bytes
进行转换。
# ord()函数获取字符的Unicode编码
# 输出65【英文字符上Unicode编码与ASKII码一致】
print(ord('A'))
# chr()函数把编码转换为对应的字符
# 输出a,因为97对应的是a
print(chr(97))
# 如果知道字符的整数编码,也可以直接用十六进制写
# Unicode编码对应'中文',因此输出'中文'两个字
print('\u4e2d\u6587')
# Python对bytes类型的数据用带b前缀的单引号或双引号表示
# 此时x存放的是bytes类型
x=b'ABC'
# 通过encode()方法可以编码为指定的bytes
# 将字符串转换为ASKII码对应的bytes存储
print('ABC'.encode('ascii'))
# 将字符串转换为UTF-8码对应的bytes存储
print('中文'.encode('UTF-8'))
# 通过decode()方法可以将bytes按照指定方式解码
# 以ASKII码的方式解释字节流,输出ABC
print(b'ABC'.decode('ascii'))
# 如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节,如下
# 只输出'中',因为另一个字节码在utf-8编码情况下不对应任何字符
print(b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore'))
%
运算符用来格式化字符串。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?
,括号可以省略
如果不太确定应该用什么,%s
永远起作用,它会把任何数据类型转换为字符串
字符串里面的%
是一个普通字符时需要转义,用%%
来表示一个%
# 输出'Hello, world'
print('Hello, %s' % 'world')
# 输出'Hi, Michael, you have $1000000.'
print('Hi, %s, you have $%d.' % ('Michael', 1000000))
Python
内置的一种数据类型是list
,可以随时添加和删除其中的元素,将其理解为链表即可,同时Python
中的list
更加强大,内部可以存放不同类型的元素
# 创建一个list
classmates=['tom','jack','mike']
# 用下标进行访问,输出tom
print(classmates[0])
# 负的下标代表倒数第几个,此处输出mike
print(classmates[-1])
p = ['asp', 'php']
# 此时s[2][1]等价于p[1]
s = ['python', 'java', p, 'scheme']
# append方法将元素追加至末尾 append('martin') # insert方法将元素插入指定索引位置 insert(0,'linda') # pop()方法删除末尾元素,也可删除指定索引元素 pop() # 移除符合要求的第一个值 remove('xxx') # 连接两个列表,这是比+运算符连接效率更高的方法 extend(list) # 统计num在list中出现的次数 count(num) # 某个元素在不在列表中,返回布尔型 element in/not in listname list(reversed(range(5))) # 生成一个倒序列表[4,3,2,1,0]
# 二分搜索以及已排序列表的插值【bisect本身不检查列表是否有序】
import bisect
c=[1,2,2,2,3,4,7]
# 返回元素2在c中应当插入的位置
bisect.bisect(c,2)
# 把元素2插入应当插入的位置
bisect.insort(c,2)
tuple
一旦初始化就不能修改【所谓“不变”是说每个元素指向永远不变】,这是其与list
的唯一区别
# 当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
t = (1, 2)
# 定义一个空的tuple
t = ()
# 只有1个元素的tuple定义时必须加一个逗号,否则会与数学中的小括号歧义
t = (1,)
# tuple和list还具有拆包特性
seq=(1,2,3,4)
# 将1赋值给a,将2赋值给b,剩余部分成为列表放入rest
a,b,*rest=seq
# 定义key-value
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
# 取出键值对应的值
d['Michael']
# 放入键值对
d['Adam'] = 67
# 当键值不存在于字典中时会报错,因此取值前最好进行判断
# 若此时不存在这样的键值则返回False
'Thomas' in d
# 若当前键值对不存在则返回None
d.get('Thomas')
# 当键值对不存在时返回-1
d.get('Thomas', -1)
# 删除键值对
d.pop('Bob')
set
的原理与dict
一致,不过其只存储key
值
# 得到一个空集合
s=set()
# set的赋值初始化需要list作为输入集合
s=set([1, 2, 3])
# add方法往集合添加元素
s.add(4)
# remove方法移除集合中的元素
s.remove(4)
# 得到交集
s1 & s2
# 得到并集
s1 | s2
Python
的条件判断是不需要小括号括起来的,同时由于其依靠相同缩进代表同一代码块,因此也无需中括号
age = 3
#只要age是非零数值、非空字符串、非空list等,就判断为True,否则为False
if age >= 18: #不要少写冒号
print('adult')
elif age >= 6: #else if在此处缩写为elif
print('teenager')
else:
print('kid')
# 定义一个list
nums=[1,2,3]
# for的用法,不要忘了冒号:,while循环同样需要冒号
for x in nums:
# x是nums中的元素
print(x)
# Python内置的enumerate函数可以把一个list变成[索引-元素]对,这样就可以在for循环中同时迭代索引和元素本身
for i, value in enumerate(['A', 'B', 'C']):
# i即此元素在list中的下标
print(i, value)
# 也可以同时引用多个变量,此时就像是有多个索引进行遍历
for x, y in [(1, 1), (2, 4), (3, 9)]:
print(x, y)
# 后边的部分先得到,接着按顺序赋值
a, b = b, a + b
# 上述赋值语句等价于声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/539790
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。