python基本语法整理

python刚刚开始入门,总结一下上网课时学到的python基本语法。
有一点c的基础,主要总结和c不太一样的地方。
持续更新

sidenotes

  • 不需要semicolon ;
  • indentation缩进代替{ }
  • 变量不需要declare type,可以直接赋值。

print

  • 不需要格式符号%d,%lf
  • “” 或者’ '都可以用来标注字符串
  • 每次print执行完了之后,都会默认换行。可以更改这一设定:
print("hello world", end='')
#end=规定每次打印结束以什么来结尾
  • 一个print函数打印多个字符串
print(a, b, c)
#默认字符串用空格隔开
print("hello" * 3)
#打印“”里面的内容3次

--------------------
hellohellohello
print("hello" + "world")

----------------
helloworld

打印特殊符号

转义符号

当要打印字符串里面的 ’ 或者" 时,\n, \t, 或者位于句末的\时

print("lower\\")

---------------------
lower\

加上r

(只适用于\n, \t等,并且不包括位于句末的\)

string = r'\n\t'
print(string)

---------------------
\n\t

打印多行的字符串

使用三个“ 或者 ‘

print('''hello
world''')
#打印结果会自动换行

---------------------
hello
world

if else

不要忘记冒号和indentation

if a == 1:
	print(' a == 1')
elif a == 2:
	print(' a == 2')
else:
	pass

while

不支持do while

a = 1
while a < 2:
	print(a)
	a += 1
	#⚠️python不支持++,--

for

主要适用于list或者tuple
⚠️这里的i和j不是一个counter,而是这个list里面的一个元素element

for i in list1:
    for j in i:
        print(j)

运算符

逻辑运算符

&& and
|| or
! not

算数运算符

/ 为数学意义上的除法,整数之间相除可以得到小数
// 为floor除法,即使operands是小数,结果依然为小数(floor为整数)
** 幂

  • 比左侧的单目运算符高,比右侧的低
-3 ** 2 == -9
3 ** -2 == 0.11111

比较符

支持 3<4<5,相当于 3<4 and 4<5

三元操作符

string = a if a < b else b
if a < b:
	string = a
else:
	string = b

数据类型

区分int & float

有无小数点

科学记数法

默认为float

a = 1e-12

序列 sequence

commonalities

  • slice
  • 重复操作(*),拼接(+),关系(in not in)
  • 其他操作:
  1. 判断序列里,是否含有另外一个序列
  2. 查找某一个element或者sequence,返回其index
  3. 查找index中存储的element
  4. 查找最大/小值 (前提:所有elements为同一个类型)
  5. 查找某个element出现的次数
  • index支持负数,意为倒数 (e.g. -1意思是倒数第一)

列表list

  • 空列表:[]
  • 可以更改element,添加,删除
list1 = [1, 'hello', 2.0]
#可以存放不同类型的元素

添加element

list1.append(3)
#追加一个element,一次只能添加一个
list1.extend([0, 2.4])
#输入的list会与当前的list合成一个list

#或者
list2 = list1 + list2
list1.insert(0, 'hello')
#第一个参数为index,第二个是element
#将一个element放到指定的index

删除element

list1.remove(0)
#删除输入的element
del list1[2]
del list1
#删除某一个element或者整个list
list1.pop(3)
#删除在这个index的element,并返回这个element
#默认为最后一个element

slice

list1[1:3]
#截取从index1到3(不包含3)的elements
#第一个参数默认为0,第二个为最后的index

list2 = list1[:]
#copy整个list, 更改list1并不会影响list2, vice versa

list2 = list1[1:9:2]
#step为2

比较大小

list1 == list2
#只有当所有element相同时为true
list1 < list2
#比较第一个不相同的element

检查是否存有一个element

if 'hello' in list2:
	print('yes')
if 'hello' not in lsit2:
	print('no')

某个element出现次数

list2.count('hello')

某个element第一次出现index

list2.index('hello', 3, 7)
#返回这个element在[3, 7)内第一次出现的index
#如果没有出现,会出现valueError

倒序

list1.reverse()

排序

list1.sort()
#默认从小到大排序,不同参数排序不同

元组tuple

和list非常相近,但是不能改变

  • 空元组 ()
  • ⚠️创建元组的标志为逗号,而不是()
tuple1 = (2, 3, 4)
tuple2 = (2,)
tuple3 = tuple1 * 3
tuple4 = tuple1[:2] + ('hello',) + tuple3[:]

字符串

  • python没有字符,只有字符串
  • 不可以通过index修改element,可以使用slice修改
str1 = 'hello!world'
str1 = str1[:5] + ' ' + str1[6:]

字符串操作

下面主要总结可以做什么,不介绍函数
⚠️涉及查找的函数,可以支持从左或从右查找

  • 改变大小写
  • 居中,左对齐,右对齐 字符串
  • 判断字符串是否以sub string结束/开始
  • 判断字符串里有无数字,字母,大小写,title(首字母大写)
  • 用字符串分隔所有字符
  • 去掉/替换 字符串中指定的sub string

格式化字符串:将某一个element按照规定的格式输出

format
用{}来表示需要replacement的地方

  1. 未知参数 non-keyword
statement = "{0} has {1} files"
statement = statement.format("John", 10)
#⚠️format只是返回一个更新之后的字符串,并不是彻底更改statement

-------------------------
John has 10 files
  1. 关键字参数 keyword
statement = "{a} has {b} files"
statement = statement.format(a = "John", b = 10)

----------------------------
John has 10 files

可以混合使用未知&关键字,但是未知必须在关键字之前使用

如果想要打印 { }

a = '{{0.1}} is a {0}'.format('union')
print(a)
#{}用来转义{},相当于上面的转义符号,所以{1}会被当作普通character打印

---------------------
{0.1} is a union

格式化符号
%c

a = '%c %c %c' % (97, 99, 100) #⚠️一定要加括号
print(a)

-------------------
a c d

%s, %d

str1 = '%s += %d' % ('hello world!', 100)
print(str1)

------------------
hello world! += 100

%f, %e (%E), %g(%G)

%g 自动判断是使用小数还是科学记数法, 不支持指定精确到小数点后几位

#10.1, 10表示输出的结果至少为10位,如果不够空格来凑,1表示小数点后1位
str1 = '%0.1f == %10.1e == %g' % (1000000, 1000000, 1000000)
print(str1)

-----------------------
1000000.0 ==    1.0e+06 == 1e+06

其他: 左右对齐,正数前面加+, 不同进制,规定输出width(可选用空格还是0来填充),百分比

BIF

assert

当condition结果为true时,程序正常运行。如果false,程序自动退出,显示assertion error
可以当作"break point“使用

assert a = 0

input
输出参数,读取用户输入的内容 (回车结束输入),返回内容

a = int(input("Please enter a number"))

range
建立int list
默认第一个参数为0,第三个为1

list2 = range(0, 10, 3)
#一个[0,10)的list,step为3

list
将参数变成一个list
没有参数是,创建一个empty list

list2 = list(string1)
list1 = list()

类似的函数还有str, tuple

len
返回一个序列的长度(elements的数量)

max , min
返回一个序列中的最大/小值
⚠️elements必须为同一个type

sum
⚠️elements必须为同一个type
所有elements的总和

enumerate
可以将列表里的elements和其index组成一个个元组,最后组成列表

zip
将几个list合成一个list

函数

def isEven (number):
	if number % 2 == 0:
		return True
	else:
		return False

函数文档
和注释一样,在调用函数的时候不会被执行,但是可以帮助理解这个函数

def sum(num1, num2):
	'这是一个用来计算sum的函数‘
	return num1 + num2

print(sum.__doc__)
#执行这个命令的时候,就会打印'这是一个用来计算sum的函数‘

关键字参数&默认参数

在没有输入参数时,使用默认参数

def sum(num1 = 3, num2 = 6): #默认参数
	return num1 + num2

print(sum(num2 = 1, num1 = 2)) #关键字参数
print(sum())

收集参数
当不确定有多少个参数时

def sum(*params):
	result = 0
	for i in params:
		result += i
	print(result)

sum(1,2,55,43)

⚠️如果在收集参数之后,还想要添加别的参数。在调用的时候,要通过关键字参数的方法调用

print本身就有一个收集参数

猜你喜欢

转载自blog.csdn.net/charloy/article/details/106983262