初学python,小记一
Posted shaonianlang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python,小记一相关的知识,希望对你有一定的参考价值。
1、python中的print()语句中的end=‘‘
为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串,其实这也是一个语法要求,表示这个语句还没结束
print默认是打印一行,结尾加换行。end=‘‘意思是末尾不换行,加空格
def goose():
print(‘鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波‘)
for i in range(0, 50):
print(‘*‘, end=‘‘)
goose()
2、format()格式化字符串方法
s.format(),其中,s是一个待格式化的字符串,里边包含若干组格式说明符,每组格式说明符都放在一对花括号({})中。格式化之后,花括号连同其中的格式说明符都会被格式好的对象所取代,每组格式说明符都对应一个待格式花的对象。我们要把待格式化的对象以参数的形式传给format函数,待格式化的对象可以有多个,可以把他们逐个传递给format函数,也可以把它们放入元组、列表或者字典再传给format函数。
>>> ‘I am {},and I am {} years old.I love {}‘.format(‘Jack‘,18,‘python’)
‘I am 18 years old.I am Jack and I love Python‘
其中我们还可以为花括号进行编号,在待格式化的字符串中,从左到右依次为{0}、{1}、{2}...其中,{0}对应第一个参数、{1}对应第二个参数、{2}对应第三个参数...
>>> ‘I am {2} years old.I am {1} and I love {0}‘.format(‘Python‘,‘Jack‘,18)
‘I am 18 years old.I am Jack and I love Python‘
我们也可以把待格式化的对象放入一个列表中,然后再把挣个列表传递给format函数,传递列表时也要在前面加上*,把列表解包成位置参数
>>> li = [‘Python‘,‘Jack‘,18]# {0}对应li[0],即‘Pyt# {1}对应li[1],即‘Jack‘
# {2}对应li[2],即18
# *把列表解包成位置参数
>>> ‘I am {2} years old.I am {1} and I love {0}‘.format(*li)
‘I am 18 years old.I am Jack and I love Python‘
此外,我们还可以使用位置编号和索引从列表中获取元素,如下:
>>> ‘I am {0[2]} years old.I am {0[1]} and I love {0[0]}‘.format(li)
‘I am 18 years old.I am Jack and I love Python‘
此外,我们还可以把多个待格式化的值放入到一个字典中,然后再把字典作为参数传给format函数。传递字典时,我们要在前面添加两个**号,这表示把字典解包成关键字参数,并在{}中使用字典的键来引用字典中的值。
# **表示把字典解包成关键字参数
>>> dic = {‘name‘: ‘Jack‘, ‘age‘: 18, ‘favorite‘: ‘Python‘}
>>> ‘I am {age} years old.I am {name} and I love {favorite}‘.format(**dic)
‘I am 18 years old.I am Jack and I love Python‘
当然,我们也可以不使用**,而结合使用位置编号和字典的键来获取字典中的值,如下
>>> dic = {‘name‘: ‘Jack‘, ‘age‘: 18, ‘favorite‘: ‘Python‘}
# 请注意:在使用字典的键获取值时,请不要在键上加引号。
# 这一点与从普通字典获取值的方法有所不同
>>> ‘I am {0[age]} years old.I am {0[name]} and I love {0[favorite]}‘.format(dic)
‘I am 18 years old.I am Jack and I love Python‘
3、函数传使用技巧
- 关键字传参
- 混合形式传参
- 序列传参
def calc(a, b, c):
return (a + b) * c
l = [1, 5, 10]
print(calc(*l))
- 字典传参 输出格式:函数名(**字典名)
def calc(a, b, c):
print(a)
print(b)
print(c)
param = {"a":2, "b":4, "c":6}
calc(**param)
- 返回值包含多个额数据
4、>>>>>python中的随机数
import random
#产生一个1-16之间的随机整数
r = random.randint(1,16)
>>>>>>Python split() 通过指定分隔符对字符串进行切片,如可以对字符串进行切割成列表
str.split(str="", num=string.count(str)).
>>>>>>Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
str.find(str, beg=0, end=len(string))
5、模块导入问题:
导入:import os
定位:当前包--->内置函数--->sys path(环境变量)
当多个程序需要同时导入一个模块并且都是访问时,使用import 可以节省内存空间
当多个程序需要同时导入一个模块当其中一个需要修改模块,那么修改的模块的程序应该使用from来导入模块
# 模块的属性
dir # --列出对象所有的属性和方法
help # 查看类,方法的帮助信息
__name__ # 模块的名称
__file__ # 模块的全路径
期间有个遇到的问题,在同一个目录下,有的模块可以正常导入,有的模块导入提示失败,经过大神+百度,是说配置问题
问题:直接导入import yci_test会报错,没有此模块
解决方法:
第一步:file—setting—Build,Execution,Deployment—console—Python Console,将选项“Add source roots to PYTHONPATH”勾选上。(有些可能已经勾选,如果你的此选项已勾选,则直接跳入到第二步)
第二步:选择自己的工作空间,右键点击“Mark Directory as”选项,选择此选项下的Sources Root。就可以解决无法识别模块问题了。
>>>>>>>引入包,实际就是导入它的__init__.py
全局引用:import顺序 :1、引入标准库 2、第三方库包 3、自定义的包/模块
局部引用:
def funct()
import pay
只引入需要的属性和方法:from module.xx.xx import xx
指定别名: from module.xx.xx import xx as rename
引入所有:from module.xx.xx import *
python中的map函数
1、map是python的内置函数,会根据提供的函数对指定的序列做映射
map()函数的格式是:map(function,iteerable,...)第一个参数接受一个函数,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。把函数一次作用在list的每一个元素上,得到一个新的list返回,map不改变原list,而是返回一个新的list
2、map()函数实例:
--->>def square(x)
return x ** 2
map(square,[1,2,3,4,5])
使用lambda匿名函数的方法使用map()更为常见
---->>>map(lambda x ,y : x+y,[1,2,3,4,5],[6,7,8,9,10])
当不穿入function时,map()就等同于zip(),将多个列表相同未知的元素归并到一个元组:
map(None,[2,3,4],[5,6,7]) 结果[(2,5),(3,6),(4,7)]
lambda函数的使用
1、def new_func(x):
reeturn (lambda y : x + y)
t = new_func(3)
u = new_func(2)
2、lambda函数和filter函数
filteer()方法用于根据一定的条件对给懂的列表进行过滤
my_list = [2,3,4,5,6,7,8]
new_list = list[filter(lambda a : (a/3 == 2),my_list)]
print(new_list) 输出结果为:[6]
3、lambda函数和map函数
python中的map函数数一个将给定的列表的值一次在所定义的函数关系中迭代并返回一个新列表
my_list = [2,3,4,5,6,7,8]
new_list = list(map(lambda a: (a/3 !=2),li)
print(new_list) 输出结果为:[假,假,假,假,真,假,假]
4、lambda函数和reduce函数
reeduce函数会对参数序列中元素累加;将序列的前两个函数合二为一,再将将结果与第三个元素合二为一,以此类推,直到完成所有元素的累加
from functools import reduce
reduce(lambda a,b: a+b,[23,21,45,98])
输出结果为187
以上是关于初学python,小记一的主要内容,如果未能解决你的问题,请参考以下文章