python学习(一)基础学习 易忘点

字符转义

  • 使用r'',字符串内容不转义
>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\

输出字符串

  • 输出多行字符r''''''
.py文件代码

print('''line1
line2
line3''')
---------
line1
line2
line3 

  • 字符串格式化
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)

s1 = 72
s2 = 85
r = (s2-s1)/s1*100;
print('%.2f%%' % r);
print('{0}成绩提升了{1:.1f}%'.format('小明', r));
------
18.06%
小明成绩提升了18.1%

基本数据类型

  • boolean运算
True   False
and or not

-空值

None

有序列表 list和tuple

  • list
list = [];
len(list)  -- 长度为0
list.append(1)
list.append('xiaoming')
list.append([4, 5, 6, 1])
list.insert(1, 3)
list.pop()
  • tuple
tuple 类似list,但本身包含的元素不能修改,且没有任何函数,包含的list值允许修改,只包含一个元素必须加逗号
tuple=()
tuple=(1, )
tuple=(1, 2, [1, 2, 3])
print(tuple[2][0]) -- 1

dict 字典(map) 和 set

  • dict
dict = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
dict['c'],key不存在会报KeyError错误信息
dict.get('c', -1) --如果存在,返回正确值;不存在返回自定义的值 -1
dict.get('c') --如果不存在,返回None
dict.pop('c') --删除元素,key不存在会报KeyError错误信息

判断key是否在dict中: 'c' in dict  --False

-set 和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

set = set([1, 2, 3, 4])
set.add(5)
set.remove(1)

set2 = set([3, 4, 6])

set & set2   --([3, 4])交集
set | set2    --([1, 2, 3, 4, 6])并集

条件判断 if elif else

age = input('请输入你的年龄:')
age = int(age)
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

循环

跳出循环 break;
进入下一轮循环,跳过后续代码 continue

  • 计算0到100相加之和
sum = 0
for x in range(101):
    sum = sum + x
print(sum)
  • 计算0到100内奇数之和
sum = 0
x = 99
while x > 0 :
    sum += x
    x -= 2
print(sum)  

函数

  • 内置函数 调用
abs(-12.34)  --12.34
max([1, 3, 6])   --6
min()
list()
range(5)  --[0, 1, 2, 3, 4]
hex  --十进制整数十六进制
-------类型转换函数
int()
str()
bool()
    bool(None)  bool() bool(0)  --False
    bool(1)  bool(-1) bool('aa') bool('True') bool('False')    --True

x=22
isinstance(x, (int, float))   --True
  • 函数定义

类似javascript函数,可以返回任何数据类型,默认返回None

---- 函数声明格式
def getSum(x, y, z=0):
    return x + y + z
---- 空函数
def getSum(x, y, z):
    pass
---- 空代码体
if x > 0:
    pass
  • 参数检查
def getSum(x, y):
    if not isinstance(x, (int, float)):
        raise TypeError('bad oprand type')
  • 函数返回多值tuple
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math

def move(x, y, step, angle=0):
    nx = x + step*math.cos(angle)
    ny = y + step*math.sin(angle)
    return nx, ny, angle

print(move(2, 3, 4)) -- (6.0, 3.0, 0)
  • 函数默认参数

有默认参数,调用函数时默认参数可以不传

def def_default(x, y, country='shenzhen', address='china'):
    pass

-------调用方式
def_default(1, 2)
def_default(1, 2, address='hanchuan')
def_default(1, 2, 'hanchuan')

-------陷井
def add_end(L=[]):
    L.append('END')
    return L
add_end()  --第一次调用 输出:['end']
add_end()  --第二次调用 输出:['end', 'end']

原因:
python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了

**定义默认参数要牢记一点:默认参数必须指向不变对象!**

解决办法:
def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L
  • 函数参数
------可变参数
def def_case(*args)  --*args,args接收的是一个tuple

nums = [1, 2, 3]
def_case(nums)  --([1, 2, 3],)

def_case(*nums)  --(1, 2, 3),*nums将list集合变为了可变参数

-------关键字参数
def person(name, age, **kw):   --**kw, kw接收的是一个dict
    print('name:', name, 'age:', age, 'other:', kw)

-------命名关键字参数
必须以*当作分隔符,city,job为键名,必须传入,否则会报错
def person(name, age, *, city, job):
    print(name, age, city, job)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,982评论 0 5
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 2,044评论 0 1
  • 与或运算 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此...
    张文靖同学阅读 373评论 0 1
  • 0. 序言 python 是一门脚本语言:封装性强,语法简洁,开发效率高,只用函数open就可以打开一个txt文件...
    付凯强阅读 1,338评论 0 5
  • 今天是在对公司财务作账的问题上做了一些调整,下午是带女儿去游泳,游完泳去菜市场买了一些菜回来,美美的做了一顿晚餐。
    李代唐阅读 204评论 0 0

友情链接更多精彩内容