Python基础知识:数据类型与函数

  • Python3.x

1 数据类型

1.0 标准数据类型

Python3.x标准数据类型有6中,如下:

序号 数据类型 描述
1 数字 Number
2 字符串 String
3 列表 List
4 元组 Tuple
5 字典 Dictionary
6 集合 Set

1.2 数字(Number)

数字包括整数,浮点数,布尔数据和复数四种,python3.x中将True和False定义成关键字,表示1和0,python2.x中没有布尔类型,用1和0表示.

序号 数据类型 描述
1 bool True,False
2 int a=2,b=3
3 float a=2.2,b=20.5+e10,c=33.3-E22
4 complex a=4j,b=1+2j

1.3 字符串(String)

  • 单引号或双引号表示,反斜杠\表示转义字符,如换行\n.
  • 截取字符串:变量[索引,位置]
  • 左向右从0开始索引,右向左从-1开始索引;
序号 数据类型 描述
1 字符串 ‘a’,“a”,‘abc’,’\n’

1.5 元组

  • tu = (“a”, “b”);
  • 元组元素定义之后不能动态修改;
  • tu[索引:位置];
序号 数据类型 描述
1 元组 (‘abc’, ‘b’,234)

1.4 列表

  • 列表元素获取:变量[索引:位置];
  • 列表可同时存储不同类型的数据;
  • 列表元素可动态添加;
序号 数据类型 描述
1 列表 li = [‘abc’,32,‘b’]

1.6 字典

  • dict = {“name”:“xindaqi”}
  • key是唯一的
  • 通过键获取元素,dict[“key”];
  • 遍历键:dict.keys();
  • 遍历值:dict.values();
  • 可动态添加键值对;
序号 数据类型 描述
1 字典 {‘key’:‘value’}

1.7 集合

  • 用于成员关系测试和删除重复元素;
  • sets = {“xin”, “daqi”};
  • 空集合set();
  • 可动态添加元素,即并集(|)和交集(&),补集(-);
  • 不可遍历;
序号 数据类型 描述
1 集合 {‘abc’,‘b’}

1.8 数据类型及操作

序号 数据类型 描述
1 字符串,采用str()显示 %s
2 字符串,采用repr()显示 %r
3 单个字符 %c
4 二进制整数 %b
5 十进制整数 %d
6 十进制整数 %i
7 八进制整数 %o
8 十六进制整数 %x
9 指数,基底为e %e
10 指数,基底为E %E
11 指数e或浮点数(根据显示长度) %g
12 指数E或浮点数(根据显示长度) %G
13 浮点数 %f
14 浮点数 %F
15 字符"%" %%

2 python函数

  • python函数是组织好,可复用功能的代码段。
  • 格式:
def funciton_name(*argv):
	print(para)	

2.1 定义并调用函数

#-*-coding:utf-8-*-
#定义函数
def greet_user(user):
	print(user)
#调用函数
greet_user('xindaqi')

2.2 位置实参调用函数

#定义函数
def describe_pet(animal_type, pet_name):
	print("Animal type is " + animal_type)
	print("Animal name is " + pet_name)
#位置实参
#按照顺序赋值
describe_pet("Dog", "Li")
describe_pet("Li", "Dog")

2.3 关键字实参调用函数

#关键字实参
#给关键字变量直接赋值
describe_pet(animal_type="Cat", pet_name="G")
#默认值:给形参赋值
def describe_goods(goods,made='China'):
	print("I want to buy " + goods + "!")
	print(goods + " made in " + made)
describe_goods(goods='iPhone')

2.4 函数返回值

#返回值
def return_0(user, age):
	info = user + " is " + age
	return info
return_1 = return_0(user='xindaqi', age='22')
print(return_1)

2.5 根据实际参数,传入实参

#实参可选
def get_name(first_name, last_name, middle_name=''):
	if middle_name:
		full_name = first_name + ' ' + middle_name + ' ' + last_name
	else:
		full_name = first_name + ' ' + last_name
	return full_name.title()
people_info = get_name('daqi', 'xin')
print(people_info)

people_info1 = get_name('john', 'lala', 'hi')
print(people_info1)

2.6 调用函数,返回字典格式数据

#返回字典
def get_name_1(first_name, last_name):
	people = {
     'first': first_name, 'last': last_name}
	return people
people = get_name_1('daqi', 'xin')
print(people)

2.6 实参为列表调用函数

#实参传递列表
def get_name_2(names):
	print(names)
usernames = ['xindq', 'xinxq', 'xinerqi']
get_name_2(usernames)

2.7 函数中修改列表及禁止修改列表

#函数中修改列表
for i in range(10):
	print("==",end='')
print('\n')
def student_name(all_stus, new_stus):
	while new_stus:
		current_stu = new_stus.pop()
		print(current_stu)
		all_stus.append(current_stu)

def show_all_stus(all_suts):
	for stu in all_suts:
		print(stu)

new_stus = ['xindaqi', 'xinxiaoqi', 'xinerqi']
all_stus = []
#保持原列表
student_name(all_stus, new_stus[:])
print(new_stus)
#修改原列表
student_name(all_stus, new_stus)
print(new_stus)
show_all_stus(all_stus)

2.8 实参为任意数量调用函数

#任意数量的实参
def goods(*toppings):
	for topping in toppings:
		print("-" + topping)

goods('cup', 'shoes')
goods('box', 'pencil', 'paper', 'ruler')

2.9 位置实参和任意数量实参调用函数

#位置实参和任意数量实参
#函数接受不同类型实参,在函数定义时将接受任意数量实参的形参放在最后
def goods(num, *tops):
	print(num)
	for topping in tops:
		print("-" + topping)
goods(12, 'cup', 'pencil')

2.10 任意数量关键字实参调用函数

#任意数量关键字实参
#**stu_info创建一个空字典,将接受的所有键-值对封装在字典中
def stu_info(first, last, **stu_info):
	profile = {
     }
	profile['first_name'] = first
	profile['last_name'] = last 
	for key, value in stu_info.items():
		profile[key] = value
	return profile

stu_info = stu_info('daqi', 'xin',
	address='China',
	email='[email protected]'
	)
print(stu_info)

3 模块定义及使用

  • 模块
    Python模块是*.py文件,包含定义的类、对象、方法和函数等python代码。
    将第二章的代码封装成fun.py模块。
  • 导入整个模块
    import fun
  • 导入指定函数
    from fun import stu_info
    导入指定函数,调用函数时无需使用句点,直接使用函数名即可完成调用。
  • 导入全部函数
    from fun import *
    导入全部函数时,调用函数无需使用句点,直接使用函数名即可完成调用。
  • 指定模块别名
    import fun as F
  • 使用
    model_name.funciton_name()
  • 代码段
import fun
fun.goods(250, 'cup')
from fun import stu_info
stu_info = stu_info('daqi', 'xin', address='China')
from fun import *
goods(250, 'orange')
import fun as F
F.goods(250, 'breather cup')

5 range和xrange

for i in range(4):
	print(i)
from six.moves import xrange
for i in xrange(4):
	print(i)
0
1
2
3

6 输出位数

6.2 指定输出位数

【两位有效数据】

a = 1.323434
b = 20.23434
print("data: {:.2}".format(a))
print("data: {:.2}".format(b))
data: 1.3
data: 20e+01

【小数点后数字个数】

a = 1.323434
b = 20.23434
print("data: {:.2f}".format(a))
print("data: {:.2f}".format(b))

【Result】

data: 1.35
data: 20.24

6.2 字符串输出

a = "tainlanlan"
pirnt("data: {}".format(a))
data: tianlanlan

7 总结

(1) 数据类型:

数据类型 实例 状态 索引
列表 [“xin”,“daqi”] 可动态修改元素,增删 偏移量遍历,索引+位置
字典 {“name”:“xindaqi”} 可动态修改值 键值对,通过键获取数据
集合 {“xin”, “daqi”} 可动态修改(使用交,并,补集) 不可索引
数字 a=250 不可动态修改某个元素 不需索引
字符串 string=“xindaqi” 不可动态修改某一个元素 偏移量遍历,索引+位置
元组 tup = (“xin”,“daqi”)
tup1 = (“xin”,)一个元素加,
不可动态修改元组中的某个元素 偏移量索引,索引+位置

(2)使用函数让程序更简洁,易读,良好的函数命名规则有助于程序的测试和后期维护。建议将工程函数封装使用。
(3) range和xrange作用一致,而python3.x中xrange在six.moves中导入;
(4) format输出有效数据格式:{:.n},其中n为有效数据位数;


[参考文献]
[1]https://www.runoob.com/python3/python3-data-type.html
[2]https://www.runoob.com/python3/python3-module.html


你可能感兴趣的:(#,Python,ABC,函数,模块,python)