Python 小记


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
# 第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。



#Python动态语言,Python的哲学就是简单优雅


print('hello python.')
print('hello', 'python.')


name = input('please enter your name:')
print(name)


# 这是注释


# 每一行是一个语句,当用:结尾时,缩进的语句视为代码块
# 只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
if x:
print(1)
else:
print(2)




# 十六进制用0x前缀和0-9,a-f表示
print(0xff0000)



# 浮点数
# 使用科学计数法表示小数时,小数点位置是可变的,比如,1.23x109和12.3x108是相等的
# 10用e代替 1.23x109就是1.23e9



# 字符串
# \是转义字符
print('I\'m \"OK\"!')


# r'' 内部字符串默认不转义
print(r'\\\\\\nnnnn')
# --> \\\\\\nnnnn


# '''...''' 表示多行内容(可以和r''一起使用)
print(a='''a
b
c
d''')



# 布尔值
print(True, False)



# 空值
print(None)



# 变量, 变量名必须是大小写英文、数字和_的组合,且不能用数字开头
a = 1



# // 地板除(除法只取整数部分),% 取余
print(10//3) # 3


# 字符编码
r''' 8个比特bit作为一个字节byte,最大能表示十进制255(二进制11111111)
最初只有127个字母编到计算机中,包括大小写英文字母、数字和一些符号,
这个编码表被称为'ASCII'编码(一个字节),比如大写字母A的编码是65,小写字母z的编码是122。
Unicode(通常是两个字节) 编码包括所有语言
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节


搞清楚了ASCII、Unicode和UTF-8的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件
'''


# 如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes
# bytes类型
x = b'ABC'
'''
编码
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
解码
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
'''


# 格式化(%运算符就是用来格式化字符串的)
'''
>>> 'Hello, %s' % 'world'
'Hello, world'


>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'


当字符串中有%时 用%%转义
>>> '%d%%' % 99
99%
'''



# list 可变的有序集合
family = ['a', [1,2,3], 'b', 'c', 1]
print(len(family)) # 3
print(family[0])
print(family[-1])


# tuple 有序列表叫元组(和list区别是tuple一旦初始化就不能修改)
family = ('a', [1,2,3], 'b', 'c')
oneList = (1,)
print(family[0])


# for
for name in family:
pass


# while
while True:
pass


# 生成整数序列
print(list(range(2)))  # [0, 1]


# 类型转换
int('123')
float('123.11')
str(123)
bool(1)


# 类型检查
isinstance(123, (int, float))




# dict (dictionary) 使用键-值(key-value) 储存
d = {'name':'jary', 'age':11}
d['country'] = 'china'


print('name' in d) # d中有'name'键True, 否则False
print(d.get('name')) # 不纯在返回None
print(d.pop('name')) # 删除键-值,返回值



# set 一组key的集合,不储存value。无序无重复元素
s = set([1,2,3]) # 提供一个list
'''
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
'''




# function
def name():
pass


def getxy():
return 1,2
a,b = getxy()
# 函数返回的是单一值tuple (1,2)
# 多个变量可以接收一个tuple,按位置赋给对应的值
# 所以看似 a=1, b=2


# 默认参数
def func(n=2):
pass
# 不按顺序提供部分默认参数
def func(n=2,m=3):
pass
func(m=4)


# 可变参数 在调用时参数会组装为一个tuple
def func(*numbers):
sun = 0
for n in numbers:
sum = sum + n
return sum
func(1, 3, 5, 7)


a=[1,2,3,4]
func(*a)


# 关键字参数 参数组装为一个dict
def func(**kw):
pass
func(city='berjing', name='la')


a={'city':'berjing', 'name':'la'}
func(**a)


# 命名关键字参数 
# 只接收city和job作为关键字参数
def func(*, city, job):
pass
func(city='berjing', job='job')




# 递归函数(函数在内部调用自己本身)
def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值