美文网首页
Pythone入门到实践-学习笔记-Day2

Pythone入门到实践-学习笔记-Day2

作者: DKJImmy | 来源:发表于2018-03-15 16:27 被阅读0次

第六章 字典

  1. 在python中 ,字典是一系列键值对,每个键都与一个值关联,可以使用键来访问与之相关联的值;
  2. 与之关联的值可是数字、列表甚至字典;
  3. 事实上,可将任何Python对象用作字典中的值;键和值之间用冒号分隔;
  4. 字典用放在花括号{}中的一系列键对表示。
  5. 访问字典中的值
alien_0={'color':'green',"points":5}
print(alien_0['color'])#字典取值,用[]里面加对应的键
#运行结果:
green
  1. 字典是一种动态结构,可随时添加键值对,依次指定字典名、用方括号括起来的键和相关联的值
alien_0={'color':'green',"points":5}
alien_0['x_pos']=0
alien_0['y_pos']=25
print(alien_0)
#运行结果:
{'color': 'green', 'points': 5, 'x_pos': 0, 'y_pos': 25}
  1. 空字典
aline_0={}
  1. 修改字典中的值,依次指定字典名、用方括号括起来的键以及与该键相关的新值
alien_0={'color':'green',"points":5}
alien_0['color']='red'
print(alien_0)
#运行结果:
{'color': 'red', 'points': 5}
  1. 删除键值对,用del语句将相应的键值对彻底删除
alien_0={'color':'green',"points":5}
del alien_0['points']
print(alien_0)
#运行结果:
{'color': 'green'}
  1. 遍历字典,可使用for循环来遍历字典,先声明两个变量,用于存储键值 对中的键和值,for语就只有的第二部分包含字典和方法items(),返回一个键值对列表,接下来,for循环依次将每个键值对存储到指定的两个变量中。
alien_0={'color':'green',"sex":'F'}
for k,v in alien_0.items():
  print("\nKey:"+k)
  print("\nValue:"+v)
#运行结果:
Key:color
Value:green
Key:sex
Value:F
  1. 遍历所有键,方法keys()返回键列表。
alien_0={'color':'green',"sex":'F'}
for key in alien_0.keys():
  print(key)
#运行结果:
color
sex
  1. 遍历所有值,方法values()返回键列表,可使用set()删除重复的值。
alien_0={'color':'green',"sex":'F'}
for value in alien_0.values():
  print(value)
#运行结果:
green
F
  1. 嵌套
    a. 字典列表
alien_0={'color':'green',"sex":'M'}
alien_1={'color':'red',"sex":'F'}
alien_2={'color':'yellow',"sex":'M'}
aliens=[alien_0,alien_1,alien_2]
print(aliens)
#运行结果:
[{'color': 'green', 'sex': 'M'}, {'color': 'red', 'sex': 'F'}, {'color': 'yellow', 'sex': 'M'}]

b. 在字典中存储列表

favorite_languages={'jimmy':['delphi','javascript','python'],
              'jenny':['python'],
              'jack':['python'],
}
for name,languages in favorite_languages.items():
  print('\n'+name.title() + "'s favorite languages are:")
  for language in languages:
    print('\t' + language.title())
#运行结果:
Jimmy's favorite languages are:
    Delphi
    Javascript
    Python
Jenny's favorite languages are:
    Python
Jack's favorite languages are:
    Python

c. 在字典中存储字典

runner={
  'DK':{
    'dept':'IT',
    'level':'A'
  },
 'John':{
    'dept':'PM',
    'level':'A'
  },
}
for name,info in runner.items():
  print('\nname:' + name)
  dept=info['dept']
  level=info['level']
  print('\tFrom dept:' + dept)
  print('\trun level:' + level)
#运行结果:
name:DK
    From dept:IT
    run level:A
name:John
    From dept:PM
    run level:A

第七章 用户输入和while循环

一. 函数input()的工作原理

函数input()让程序暂停运行,等待用户输入一些文本,获取用户输入后,Python将其存储在一个变量中,以便使用。

message = input('tell me something:')
print(message)

二. 取余运算符

%取余运算,返两数个相除的余数。

print(4 % 3)
#运行结果:
1

三. while 循环

  1. for循环用于针对集合中的每个元素都执行一个代码块,而while循环不断地运行,直到指定的条件不满足为止。
#例1
num=1
while num<3:
  print(num)
  num+=1
#运行结果:
1
2
#例2
prompt='\ntell me somethine, and I will repeat it back to you:'
promtp+='\nEnter "q" to end the program.'
msg=''
while msg != 'q':
  msg=input(prompt)
  print(msg)
  1. 使用break退出循环
#例1
num=1
while num<5:
  if num % 2 == 0:
    break
  print(num)
  num+=1
#运行结果:
1
  1. 循环使用continue
num=0
while num<5:
    num+=1
    if num % 2 == 0:
        print(num)
        continue  
#运行结果:
2
4
  1. 使用while循环处理列表和字典
    a. 列表之间移动元素
    b. 删除包含特定值的所有列表元素
    c. 使用用户输入来填充字典

第八章 函数

一. 定义函数

  1. 使用关键字def来告诉Python定义一个函数,指出函数名,在括号内指出函数为完成其任务需要什么样的信息,也可以不指定,即便为空,括号必不可少,最后以冒号结尾。
#例2
def greet_user():
  print('Hello')
greet_user()
#运行结果:
Hello
#例2
def greet_user(name): #name:形参
  print('Hello '+name.title())
greet_user('Kobe') #Kobe:实参
#运行结果:
Hello Kobe
  1. 传递实参
    鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参,向函数传递实参的方式:位置实参,要求实参的顺序与形参的顺序相同;使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。
    a. 位置实参,调用时,必须将函数中的每个实参都关联到函数定义中的一个形参,因此最简单的关联方式是基于实参顺序
def user_info(name,sex):
  print("\nI'm " + name.title())
  print("My sex is " + sex)

user_info('Kobe','Man')
#运行结果:
I'm Kobe
My sex is Man

b. 关键字实参,是传递给函数的名称-值对,直接在实参中将名称和值关联起来,所以向函数传递实参时不会混淆,无需考虑函数调用实参的顺序,还清楚地指出函数调用各个值的用途。使用关键字实参时,必须准确地指定函数定义中的形参名

def user_info(name,sex):
  print("\nI'm " + name.title())
  print("My sex is " + sex)

user_info('Kobe','Man')
user_info(sex='Man',name='Kobe')
#运行结果:
I'm Kobe
My sex is:Man
I'm Kobe
My sex is Man

c. 默认值,编写函数时,可给每个形参指默认值,如果调用中给形参提供了实参,将使用指定的实参值,否则,将使用默认值。形参指定默认值后,调用时可省略相应的实参。

def user_info(name,sex='Femal'):
  print("\nI'm " + name.title())
  print("My sex is " + sex)

user_info('Jesse')
user_info(sex='Man',name='Kobe')
#运行结果:
I'm Jesse
My sex is:Femal
I'm Kobe
My sex is Man
  1. 返回值,在函数中使用return语句将值返回到调用函数的代码行,返回值 让你能够将程序的大部分繁重的工作移到函数中去完成,从而简化主程序。函数可以返回任何类型的值
    a. 返回单个值
def get_full_name(first_name,middle_name,last_name):
  full_name=first_name + ' ' + middle_name + ' ' + last_name
  return full_name.title()

full_name=get_full_name('john','lee','hooker'):
print(full_name)
#运行结果:
John lee hooker

b. 返回字典

def build_user(first_name,middle_name,last_name):
  user={'first':first_name,'middle':middle_name , 'last' : last_name}
  return user

user=build_user('john','lee','hooker')
print(user)
#运行结果:
{'first': 'john', 'middle': 'lee', 'last': 'hooker'}
  1. 传递列表
    传递原列表,函数可以修改和删除列表;要想保持原来列表不变,调用时可传递列表副本(例2)
#例1
def greet_user(names): 
  for name in names:    
      print('Hello '+name.title())
greet_user(['Kobe','Curry'])
#运行结果:
Hello Kobe
Hello Curry
#例2
def greet_user(un_greet_users,greeted_users): 
  while un_greet_users:    
    name=un_greet_users.pop()
    greeted_users.append(name)

un_greet_users=['Kobe','Curry']
greeted_users=[]
greet_user(un_greet_users,greeted_users) 
print('First call greet_user Result:')
print(un_greet_users)
print(greeted_users)

un_greet_users=['Kobe','Curry']
greeted_users=[]
greet_user(un_greet_users[:],greeted_users) 
print('Second call greet_user Result:')
print(un_greet_users)
print(greeted_users)
#运行结果:
First call greet_user Result:
[]
['Curry', 'Kobe']
Second call greet_user Result:
['Kobe', 'Curry']
['Curry', 'Kobe']
  1. 传递任意数量的实参
def make_pizza(*toppings):
  print(toppings)

make_pizza('apple')
make_pizza('pear','rice','fish')
#运行结果:
('apple',)
('pear', 'rice', 'fish')
#例2
def make_pizza(*toppings):
  print("\nMaking a pizza with the following toppings:")
  for topping in toppins:
    print('-' + topping)

make_pizza('apple')
make_pizza('pear','rice','fish')
#运行结果:
Making a pizza with the following toppings:
-apple

Making a pizza with the following toppings:
-pear
-rice
-fish

形参*toppings中的*号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中,即使用只有一个也是如此

  1. 使用任意数量的关键字实参
def build_user(name,**user_info):
  profile={}
  profile['name']=name
  for key,value in user_info.items():
    profile[key]=value
return profile

user_info=build_user('Kobe',team='Lakers',age=40)
print(user_info)
#运行结果:
{'name': 'Kobe', 'team': 'Lakers', 'age': 40}

形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装到这个字典中。

7.将函数存储在模块中
函数的优点之一是,使用它们可将代码块与主程序分离,通过函数措定描述性名称,可让主程序容易理解;
还可以在将函数存储在被称为独立模块的独立文件中,再将模块导入到主程序中,import语句允许在当前运行的程序文件中使用模块中的代码。

a. 导入整个模块: import 模块名,模块名是扩展名为.py的文件
b. 导入特定函数:from 模块名 import 函数名
c. 使用as给函数指定别名:from 模块名 import 函数名 as 别名
d. 使用as给模块指定别名:import 模块名 as 别名
e. 导入模块中所有函数:from 模块名 import *,可以通过函数名称直接调用函数,无需使用句点表示法

  1. 函数编写指南

给函数指定描述性名称,且只在其中使用小写字母和下划线
每个函数都应包含简要阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字符串格式

相关文章

网友评论

      本文标题:Pythone入门到实践-学习笔记-Day2

      本文链接:https://www.haomeiwen.com/subject/ntucqftx.html