python-基础语法-02

本文详细介绍了Python的基础语法,包括常用函数如日期打印、列表方法、字符串格式设置、字典操作等。此外,还讲解了赋值语句、代码块、条件语句、循环、断言以及推导等核心编程概念,帮助读者深入理解Python编程的基本结构。

常用函数

函数描述
abs(number)返回指定数的绝对值
bytes(string,encoding[,errors]对指定的字符串进行编码,并以指定的方式处理错误
cmath.sqrt(number)返回平方根,可用于负数
float(object)将字符串或数字转换为浮点数
help([object])提供交互式帮助
input(prompt)以字符串的方式获取用户输入
int(object)将字符串或数转换为整数
math.ceil(number)以浮点数的方式返回向上圆整的结果
math.floor(number)以浮点数的方式返回向下圆整的结果
math.sqrt(number)返回平方根,不能用于负数
pow(x,y[,z])返回x的y次方对z求模的结果
print(object,…)将提供的实参打印出来,并用空格分隔
repr(object)返回指定值的字符串表示
round(number[,ndigits])四舍五入为指定的精度,正好为5时舍入到偶数
str(object)将指定的值转化为字符串。用于转换bytes时,可指定编码和错误处理方式
len(seq)返回序列的长度
list(seq)序列转换为列表
max(args)返回序列和一组参数中的最大值
min(args)返回序列和一组参数中的最小值
reversed(seq)能够反向迭代序列
sorted(seq)返回一个有序列表,包含指定序列中的所有元素
tuple(seq)将序列转换为元组
string.capwords(s[,sep])使用split根据sep拆分s,将每项的首字母大写,再以空格为分隔符将它们合并起来
ascii(obj)创建指定对象的ASCII表示
dict(seq)从键值对、映射或关键字参数创建字典
chr(n)返回一个字符串,其中只包含一个字符,这个字符对应于传入的顺序值n(0 ≤
n < 256)
eval(source[,globals[,locals]])计算并返回字符串表示的表达式的结果
exec(source[, globals[, locals]])将字符串作为语句执行
enumerate(seq)生成可迭代的索引值对
ord( c )接受一个只包含一个字符的字符串,并返回这个字符的顺序值(一个整数)
range([start,] stop[, step])创建一个由整数组成的列表
reversed(seq)按相反的顺序返回seq中的值,以便用于迭代
sorted(seq[,cmp][,key][,reverse])返回一个列表,其中包含seq中的所有值且这些值是经过排序的
xrange([start,] stop[, step])创建一个用于迭代的xrange对象
zip(seq1, seq2,…)创建一个适合用于并行迭代的新序列

将以数指定年、月、日的日期打印出来

months = [ 
 'January', 
 'February', 
 'March', 
 'April', 
 'May', 
 'June', 
 'July', 
 'August', 
 'September', 
 'October', 
 'November', 
 'December' 
]                        #一个列表,其中包含数1~31对应的结尾
endings = ['st', 'nd', 'rd'] + 17 * ['th'] \ 
 + ['st', 'nd', 'rd'] + 7 * ['th'] \ 
 + ['st'] 
year = input('Year: ') 
month = input('Month (1-12): ') 
day = input('Day (1-31): ') 
month_number = int(month) 
day_number = int(day)           # 别忘了将表示月和日的数减1,这样才能得到正确的索引
month_name = months[month_number-1] 
ordinal = day + endings[day_number-1] 
print(month_name + ' ' + ordinal + ', ' + year)

列表方法

方法描述
append将一个对象附加到列表末尾
clear清空列表内容
copy复制列表
count计算指定的元素在列表中出现了多少次
extend同时将多个值附加到列表末尾;可使用一个列表来扩展另一个列表
index在列表中查找指定值第一次出现的索引
insert将一个对象插入列表
pop从列表中删除末尾最后一个元素,并返回这一元素(是唯一一个既能修改又能返回一个非None值的列表方法)
push与pop相反
remove用于删除第一个为指定值的元素
reverse按相仿顺序排列列表中的元素
sort对列表就地排序,使元素按顺序排列

字符串格式设置中的类型说明符

类型含义
b将整数表示为二进制数
c将整数解读为Unicode码点
d将整数视为十进制数进行处理,e 使用科学表示法来表示小数(用E 与e相同,但使用E来表示指数
f将小数表示为定点数
F与f相同,但对于特殊值(nan和inf),使用大写表示
g自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数
G与g相同,但使用大写来表示指数和特殊值
n与g相同,但插入随区域而异的数字分隔符
o将整数表示为八进制数
s保持字符串的格式不变,这是默认用于字符串的说明符
x将整数表示为十六进制数并使用小写字母
X与x相同,但使用大写字母
%将数表示为百分比值(乘以100,按说明符f设置格式,再在后面加上%)

字符串方法

方法名描述
center通过在两边添加填充字符(默认为空格)让字符串居中,ep:“hello world”.center(50,"*") 类似方法:ljust、rjust、zfill
find在字符串中查找子串,如果找到返回第一个字符的索引,否则返回-1。类似方法:rfind、index、rindex、count、startswith、endswith
join与split相反,用于合并序列的元素
lower返回字符串的小写版本。类似方法:islower、istitle、isupper、translate、
replace将指定字符串替换为另外一个字符串,并返回替换后的结果。类似方法:translate、expandtabs
split将字符串拆分为序列 ,类似方法:join、partition、rpartition、rsplit、splitlines
strip将字符串开头和末尾的空白删除,并返回删除后的结果。类似方法:lstrip、rstrip
translate与replace一样替换字符串特定的部分,translate只能进行单字符替换,但能同事替换多个字符

字典示例:一个简单的数据库查找

people = { 
 'Alice': { 
 'phone': '2341', 
 'addr': 'Foo drive 23' 
 }, 
 'Beth': { 
 'phone': '9102', 
 'addr': 'Bar street 42' 
 },
  'Cecil': { 
 'phone': '3158', 
 'addr': 'Baz avenue 90' 
 } 
}
labels = { 
 'phone': 'phone number', 
 'addr': 'address' 
}
name = input('Name: ')
request = input('Phone number (p) or address (a)? ')
if request == 'p': key = 'phone' 
if request == 'a': key = 'addr'
if name in people: print("{}'s {} is {}.".format(name, labels[key], people[name][key]))

字典方法

方法名描述
clear删除所有的字典项
copycopy返回一个新字典,包含的键值与原来的字典相同,为浅复制,值是原件,而非副本 。可用deepcopy进行深复制
fromkeys创建一个新字典,包含指定的键,每个键对应的值都是None
get访问不存在的键时,不会引发异常而是返回None
items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定。
keys返回一个字典视图,包含指定字典中的键
pop获取与指定键相关联的值,并将该键值从字典中删除
popitem类似于list.pop,但list.pop弹出列表中的最后一个元素,而popitem随机地弹出一个
setdefault方法setdefault有点像get,因为它也获取与指定键相关联的值,但除此之外,setdefault还在字典不包含指定的键时,在字典中添加指定的键值对
update使用一个字典中的项来更新另一个字典
values返回一个有字典中的值组成的字典视图

小结

打印语句:你可使用print语句来打印多个用逗号分隔的值。如果print语句以逗号结尾,后续print语句将在当前行接着打印。
导入语句:有时候,你不喜欢要导入的函数的名称——可能是因为你已将这个名称用作他用。在这种情况下,可使用import … as …语句在本地重命名函数。
赋值语句:通过使用奇妙的序列解包和链式赋值,可同时给多个变量赋值;而通过使用增强赋值,可就地修改变量。
代码块:代码块用于通过缩进将语句编组。代码块可用于条件语句和循环中,还可用于函数和类定义中(这将在本书后面介绍)。
条件语句:条件语句根据条件(布尔表达式)决定是否执行后续代码块。通过使用if/elif/else,可将多个条件语句组合起来。条件语句的一个变种是条件表达式,如a if b else c。
断言:断言断定某件事(一个布尔表达式)为真,可包含说明为何必须如此的字符串。如果指定的表达式为假,断言将导致程序停止执行(或引发第8章将介绍的异常)。最好尽早将错误揪出来,免得它潜藏在程序中,直到带来麻烦。
循环:你可针对序列中的每个元素(如特定范围内的每个数)执行代码块,也可在条件为真时反复执行代码块。要跳过代码块中余下的代码,直接进入下一次迭代,可使用continue语句;要跳出循环,可使用break语句。另外,你还可在循环末尾添加一个else子句,它将在没有执行循环中的任何break语句时执行。
推导:推导并不是语句,而是表达式。它们看起来很像循环,因此我将它们放在循环中讨论。通过列表推导,可从既有列表创建出新列表,这是通过对列表元素调用函数、剔除不想要的函数等实现的。推导功能强大,但在很多情况下,使用普通循环和条件语句也可完成任务,且代码的可读性可能更高。使用类似于列表推导的表达式可创建出字典。
pass、del、exec和eval:pass语句什么都不做,但适合用作占位符。del语句用于删除变量或数据结构的成员,但不能用于删除值。函数exec用于将字符串作为Python程序执行。函数eval计算用字符串表示的表达式并返回结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值