简图记录-python基础(一)数据结构、控制流、函数

一、概念

1、python:一种面向对象的动态类型语言,最初被设计为自动化脚本,随着特性的更新,越来越多被用于大型项目开发。推荐IDE工具:sublime。
2、执行方式:python脚本语言通过解释器执行,目前有三种执行方式。(1)交互模式:进入python IDE或者再命令界面输入python进行交互模式,类似shell的tty的终端交互方式。(2)命令行通过命令执行python命令,python -c ‘命令’ [arg]。(3)命令行通过脚本文件执行,python -m 文件名 [arg](入参存在sys模块的argv变量中,sys.argv[0]为第一个参数)(源文件默认使用utf-8进行处理,如果不使用默认的编码,文件的第一行使用# -- coding: encoding --标注)
3、代码注释:(1)单行代码 #右边的为注释,类似C的// (2)多行使用’’‘被注释行’’’,类似C的/* */
4、基本输入输出:print进行终端输出,input用于获取用户输入

height = input("how tall are you, in inches?")
print ("you height are "+ str(height))

二、数据结构

1、变量特性

(1)无需声明 :Python相较于C/C++之类的语言不需要显示声明变量,变量在第一次被赋值时自动声明(类似shell脚本语言)。(2)动态类型 :Python在运行过程中可跟踪对象的类型,同一变量名也可直接被赋值为新的数据类型,可以通过type()进行查看类型。(3)万物皆对象:Python中如数值,字符串,数据结构,函数,类,模块等,每个对象都有与之相关的属性和方法,变量可以使用其对于类型的方法进行操作。

2、数字类型

1、概念
基本数字类型包括:整型、布尔型、双精度浮点型和复数

a = True #bool 只能赋值 True或者 False
print (type(a))
a = 10 # int 整型 大小和系统环境相关
print (type(a))
a = 10.1 #float 浮点类型
a = 9.5e-9
print (type(a))

2、数字类型运算:
(1)bool运算(可以作为if或者while逻辑表达式判断): and, or, not
(2)比较运算(优先级相同,比布尔运算的优先级高):<, <=, >, >=, ==, !=, is(对象表示) , is not
(3)算数运算(优先级高于比较运算): +, -, *, /除法, //(商小的最大整数), %,-x取反,x ** y x的y次幂

x = 11
y = 2
print (x + y) #13
print (x - y) #9
print (x * y) #22
print (x / y) #5.5
print (x // y) #5
print (-x) #-11
print (x ** y) #121

(4)类型转化函数:int()、long()、float()、complex()、bool()

x = '1234'
print (type(x)) #<class 'str'>
x = int(x)
print (type(x)) #<class 'int'>

(5)功能函数:abs()绝对值、 coerce()返回一个包含类型转化完毕的两个数值元素元组。 divmod(a,b) 返回包含商和余数的元组即(a//b,a%b) 、 pow()类似于操作符** ,可以进行指数运算,但是pow()还可以接受第三个参数,对一二进行指数,对第三个参数求余运算。

3 字符串str类型

1、概念:
字符串使用单引号(’……’)或者 双引号("……") ,反斜杠 \ 可以用来转义(如果不希望用转义可以再字符串前面加r表示原始字符串方式)。可以通过string[n]来引用字符类似c语言,n为负数表示从最后倒数第几个开始
注意:Python 中的字符串不能被修改,它们是 immutable 的。因此,向字符串的某个索引位置赋值会产生一个错误。

name = 'good boy'
print(name[0]) # 输出g
print(name[2:5]) # 输出 od
print(name[5:]) # 输出 boy 
print(name[:5]) # 输出 good
print(name[-3]) # 输出 b

print(r'C:\some\name') # 输出C:\some\name (r避免\n为换行)

2、字符串运算:
字符串 可以直接相+ 或者 *;
符串大小比较是从左到右依次比较字符串中字符的ascii的大小。支持的操作符有:>,<,>=,<=,==,!=,<>(不等于)

str1 = 'hello'
str2 = 'world'
str3 = '!'
print(str1 + ' ' + str2 + str3 * 3) #输出 hello world!!!
print(str1 > str2) #输出 False

3、字符串常用方法
(1)字符串去空格strip(),lstrip(),rstrip():没有参数的去除空格(包括空格键,Tab键,回车键)
(2)查找字符串find(str, beg=0, end=len(string)), index:查找指定范围,找到返回开始索引
(3)大小写转化lower(), upper(), title()(首字母大写)
(4)字符链接join
(5)字符替换replace
(6)字符求长度len

name = 'Good Boy abc bca'
print(name.lower()) # 输出good boy abc bca
print(name[name.find('abc'):]) # 输出abc bca
print(name.replace('abc','ABC')) # 输出 Good Boy ABC bca
4 列表list 与 元组 tuple 类型

1、概念
列表 :可以通过[]括起、逗号分隔的一组值得到列表。 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同
元组:用()括起,用逗号隔开一组值得到元组。但是元素不能二次赋值,相当于只读列表。a = tuple([1, 2, 3])可将列表转化为元祖。
2、运算
列表类似 str,可以使用+和*进行组合 重复,可以通过索引获取元素,也可以进行使用>,<,>=,<=,==,!=,<>进行比较(如果对应元素不同,遵循以下规则:均为数字强制类型转化后比较,不同类型中比较数字最小,均不是数字通过类型名字的字母顺序比较,如果一方尚有元素另一方已至列表末尾先结束的小)

mylist = [1, 4, 9, 16, 'abc']
addlist = [3, 4, 5]
print (mylist + addlist) #输出[1, 4, 9, 16, 'abc', 3, 4, 5]
print (mylist[2:4]) #输出[9, 16]
print (4 in mylist) #输出True

3、方法
(1)元素的增减 list.append(x)末尾追加 ;list.insert(i, x)指定下标插入; list.pop([i])下标移除并返回值;list.remove(x)移除 ;list.clear()清除列表
(2)元素查询 list.len()求长度; list.count(x)统计元素个数; list.max()获取最大值; list.min()最小值 ;list.index(x[, start[, end]])获取索引
(3)排序list.sort(key=None, reverse=False);list.reverse()

mylist = [1, 4, 9, 16, 6]
a = mylist.pop()
print (mylist, a) #输出 [1, 4, 9, 16] 6
mylist.append(8)
print (mylist) # 输出 [1, 4, 9, 16, 8]
mylist.insert(2, 66)
print (mylist) # 输出 [1, 4, 66, 9, 16, 8]
print (mylist.index(9)) # 输出 3
5 字典dict类型

1、概念
字典:用{ }括起一组元素,每个元素由索引(key)和它对应的值value组成,字典是无序的,由键值对构成,键必须是唯一的,通过键来存取对象。dict.has_key(key) 或者 key in/not in dict 的方式来检测字典中是否存在该键值

a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
print(a == b == c == d == e) #输出 True

2、方法
(1) 遍历元素: for key in dict ;for key in dict.keys(),for value in dict .values() ;for k, v in dict .items():
(2)查询:len(d)查询元素个数,get(key[, default])如果 key 存在于字典中则返回 key 的值,否则返回 default
(3)增减元素:新增 字典变量名[新键名] = 值 ,删除元素 dict .pop(key) ;del dict[key] ,清空字典dict.clear()
(4)修改元素:字典变量名[修改键名] = 值

dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
dishes['eggs'] = 3
dishes.pop('bacon')
for val in dishes.keys():
    print(val, dishes[val])
'''输出
eggs 3
sausage 1
spam 500
'''
6 集合set类型

1、概念
集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。花括号或 set() 函数可以用来创建集合。集合也支持 x in set, len(set) 和 for x in set。 作为一种无序的多项集,集合并不记录元素位置或插入顺序。 相应地,集合不支持索引、切片或其他序列类的操作。

s1 = set([1, 2, 3, 3, 4, 4])
print (s1) #输出 {1, 2, 3, 4}
s2 = set({1:"good", 2:"bad"})
print (s2) #输出 {1, 2}

2、运算
& 取交集, | 取并集,- 取补集

s1 = set([1, 2, 3, 3, 4, 4])
s2 = set((9, 2))
print (s2 & s1) #输出 {2}
print (s2 | s1) #输出 {1, 2, 3, 4, 9}
print (s2 - s1) #输出 {9}

3、方法
(1)遍历: for i int s1;
(2)查询:in 是否包含元素,
(3)增减:add(elem)添加元素,update()打碎插入,remove(elem)移除元素 elem,pop()移除并返回任一个元素,clear()移除所有元素

s1 = set([1, 2, 3, 3, 4, 4])
n = 0
for i in s1:
	n = n + i
print (n) # 输出 10
s1.update('abcd')
print (s1) # 输出 {1, 2, 3, 4, 'c', 'd', 'b', 'a'}
s1.add('abc')
s1.remove(3)
print (s1) # 输出 {1, 2, 4, 'd', 'a', 'abc', 'c', 'b'}

三、控制流

1、条件语句:

if 条件:命令; elif 条件:命令; else :命令

if x > 10:
    print ('x bigger than 10')
elif x == 10:
    print ('x equal 10')
else :
    print ('x samller than 10')
2、循环语句:

for 成员 in 列表 : 命令
while 条件 : 命令
(break 和 continue 使用方法和C相识)
(配合range len函数,range可以生层列表,len可以求列表成员个数)

words = ['cat','dog','apple']
for i in words:
    print (i, len(i))
for i in range(5, 10):
	print(i)
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
	print(i, a[i])
	if a[i] == 'little':
            break
while i < 20:
	print(i)
	i = i + 1
3 空语句pass

四 函数

使用关键字def来定义函数,函数的参数可以通过=默认值 来设置默认值,没有设置默认值的函数必须再调用的时候传值,参数添加*表示空元组(不定长参数,实际上传递进来之后,是一个元组,元组中存放的是数据)函数添加 **表示字典。如果一个函数中有必备参数,缺省参数,不定长参数,关键字不定长参数,需要注意这几个参数的先后顺。
return 来传出返回值,返回的多个值会存放到元组里。
函数调用时,带默认值的参数调用时可以不传入,通过 参数名=值 指定参数。

def show_car(color, height=120):
	print("the car color is "+ color + " height is "+ str(height))

show_car('red') #输出 the car color is red height is 120
show_car(color ='red') #输出 the car color is red height is 120
show_car('blue', 180) # 输出 the car color is blue height is 180
def get_max(num1, num2):
	if num1 >= num2:
		return num1
	else:
		return num2
print(get_max(10, 12)) # 输出 12
def total_print(name,age=10,*args,**kwargs):
    print(name,age,args,kwargs)
total_print('小明', 18, 'abc', 1, 55 , height=170, sex='男')
# 输出 小明 18 ('abc', 1, 55) {'height': 170, 'sex': '男'}

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值