python学习笔记(6)关键字与循环控制
一、变量和类型
1.基本变量类型
(1)整数
(2)浮点数
(3)字符串
(4)布尔值
(5)空值
(6)函数
(7)模块
(8)类型
(9)自定义类型
- print(type())
- print(type(123.45))
- print(type(.))
- print(type('abc'))
- print(type(True))
<class 'int'>
<class 'float'>
<class 'float'>
<class 'str'>
<class 'bool'>
(10)python容器
- print(type([,,,,'a','b']))#列表类型
- print(type((,'abc')))#元组类型
- print(type(set(['a','b',])))#set类型
- print(type({'a':,'b':}))#字典类型
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>
(11)函数def,在python中,函数也是一个对象,函数和普通的变量是一样的,
- def func(a,b,c):
- print(a,b,c)
- print(type(func))#这里打印出function类型
- <class 'function'>
- #打印出函数的类型
- def func(a,b,c):
print(a,b,c)
a=func
print(type(a))
#<class 'function'>
(12)查看模块的类型
- import string
- print(type(string))
<class 'module'>
(13)类和类的实例
- class MyClass(object):
- pass
- print(type(MyClass))#定义一个类属于'type'类
- my_class=MyClass()
- print(type(my_class))#而自己在实例化这个类之后,这个类就是之前定义类的类型
2.变量和类型
(1)变量定义:变量是存储在内存中的值,这意味着创建变量的时候会在内存中开辟空间。
基于变量的数据类型,解释器会分配指定 的内存,并决定什么数据可以在存储器中。
变量可以指定不同的数据类型,这些变量可以存储整数、小数或者字符。
(2)变量赋值
每个变量在使用之都必须进行赋值,变量在赋值之后,变量才会被创建
下面例子中的变量没有被赋初始值,就会报错
- try:
- x
- print(x)
- except NameError:
- print('NameError:"x" is not define')
NameError:"x" is not define
等号=用来给变量赋值,等号(=)运算符的左边是一个变量名,等号右边的运算符是存储变量中的值
- x=100
实际上是在堆内存中分配了一块空间,分配了一个int,int是4个字节,x是指向存放100的内存地址,所有的变量就是指向这个内存地址的
所有在栈中的东西,在函数调用结束之后都会被清理掉,在堆上分配的东西,生命周期就是全局的,只要不清理,不管函数有没有结束,东西都是放在那里的
3.字符串的处理
(1)除去空格以及特殊符号:strip,lstrip,rstrip
(2)复制字符串str1=str2
(3)连接字符串:str2+=str1 new_str=str2+str1
(4)查找字符串:pos=str1.index(str2)
(5)比较字符串:cmp(str1,str2)
(6)字符串长度:len(str)
(7)字符串是不能被修改的。
- import string
- #字符串是不能被修改的
- s='abc'
- s[]='x'
TypeError: 'str' object does not support item assignment,字符串不支持元素的赋值操作
(7)字符串的连接直接通过+加起来就可以
- import string
- #字符串的连接
- s1='abc'
- s2='def'
- print(s1+'\n'+s2)
abc
def
(8)字符串的大小写
- import string
#字符串的大小写
s='aBc dHef'
print(s.upper())#通过upper()函数将函数全部转换为大写
print(s.upper().lower())#通过upper()函数将所有字母转换为大写,通过lower()函数将所有的字母转换为小写
print(s.capitalize())#capitalize()是将首字母转换为大写
ABC DHEF
abc dhef
Abc dhe
(9)字符串的比较:
- import string
- #位置比较
- s_1='abcdefg'
- s_2='abdeffxx'
- print(s_1.index('bcd'))#查看bcd出现的位置,bcd出现的位置是1
- #print(s_2.index('bcd'))#查看bcd出现的位置,s_2是没有bcd这个子字符串,所以这里就会出现异常、
- #在python3中,cmp函数被移除了,直接用==号作比较就好
- print(s_1==s_2)
- print(s_1 < s_2)
- print(s_1 > s_2)
print(len(s_1))
False
True
False
7
(10)空字符串和Falsle是等价的
- import string
- s=''
- if not s:
- print('Empty')
- elif s:
- print('not empty')
(10)字符串的分割和连接
- import string
- #分割和连接
- s='abc,def,ghi'
- splitted=s.split(',')
- print(type(splitted))#切割之后的类型是列表类型
- print(splitted)#分割后的结果,
['abc', 'def', 'ghi']
<class 'list'>
['abc', 'def', 'ghi']
- import string
#分割和连接
s="""abc
def
ghi
efg"""
s_1=s.split('\n')
s_2=s.splitlines()#专门按照行来进行分割
print(s_1) #按照换行符来进行切割
print(s_2) #与上面的这种方式是等价的
['abc', ' def', ' ghi', ' efg']
['abc', ' def', ' ghi', ' efg']
- #连接操作,将列表中的字符串组合回去
- import string
#分割和连接,将列表中的字符串组合回去
s=['abc','def','ghi']
print(''.join(s))#连接回去之后,不用任何连接符
- print('-'.join(s))#以-号作为连接符合
print('\n'.join(s))#以\n作为连接符合
- abcdefghi
abc-def-ghi
abc
def
ghi
(11)常用的判断
startswith()用于判断某个字符串是不是以某个值开头的
- #字符串的常用判断
- import string
- s='abcdefg'
- print(s.startswith('abc'))
'1234abcd'.isalnum()用于判断字符串是不是只含有字符串和数字
- print('12345abcde'.isalnum())#只包含字母和数字
True
'abcd'.isalpha()用于判断是不是只有字符而没有数字的情况
- print('abcd'.isalpha())#判断是不是只有字符没有数字的情况
'12345'.isdigit()用于判断是不是纯数字的情况
- print(''.isdigit())#判断是不是纯数字
' '.isspace()用于判断是不是只有space
- print(' '.isspace())#判断是不是只有space
'abcd123456'.islower()用于判断字符串中的字母是不是都是小写的
- print('abcd12345'.islower())#判断abcd是不是小写
'ABCD1234'.upper()用于判断字符串是不是都是大写的
- print('Abnf12345'.isupper())#返回false
- print('Hello World'.istitle())#判断是不是首字母大写
- print('Hello World'.istitle())#判断是不是首字母大写
(12)数字转换到字符串
- import string
- #数字到字符串的变化,就是将数字转化为字符串或者将字符串转化为数字
- print(str())
- print(str(5.0))
- print(str(5.1234))
- print(str(-5.1234))
(13)字符串转换到数字
- import string
- #字符串转换到数字
- print(int(''))#将字符串转换为整数
- print(float('1234.567'))#将字符串转换为浮点数
- #print(int('123.45'))#这个地方会报错,将数字从浮点数转换为整数,系统不会自动做转换
- #将数字做二进制的转换
- print(int('',))
- print(int('ffff',))#得到16进制值是65535,在数值后面要加上进制数
- print(int('',))#将8进制数字转换为10进制
(14)条件判断
if判断:
- #if判断语句
- a=
- b=
- c=
- if c==a:
- print(a)
- elif c==b:
- print(b)
- else:
- print(c)
None的判断:用is来进行直接的判断
- #None的判断,可以用==也可以用is来进行判断
- x=None
- if x is None:
- print('None')
- else:
- print('not None')
(14)for循环,
- for i in range(start,end,step):
(15)函数
函数的定义格式:
默认参数
可变参数:args,自动组装成tuple
关键字参数:args,自动组装成dict
命名关键字参数
函数调用
函数名(参数名)
模块名(参数名)
带参数名调用
什么是递归?
- def func_name(arg_1,arg_2):
- print(arg_1,arg_2)
- return arg_1,arg_2
- r=func_name(,)
- print(type(r))
- #打印出的结果:1 2
#print(type(r))
#打印出函数的类型
- #函数的调用
def func(x,y=):- return x+y
- print(func(,))
- print(func())
- #用字典来实现类似的功能
- def func(p):
- print('x=',p['x'])
- print('y=',p['y'])
- print(func({'x':,'y':}))
(16)定义可变参数函数
- #可变参数,*表示将传进来的数字全部放进一个数组中去
- def func(name,*numbers):
- print(type(numbers))
- print(numbers)
- func('Tom',,,,,'abc')#元组,等价于一个只读数组
- def my_print(*args):
- print(args)
- my_print(,,,,'a','b','c')
- #字典数据类型
def func(name,**kvs):#** means key/value- print(name)
- print(type(kvs))
- print(kvs)
- func('Tom',china='Beijing',uk='London')
3.递归函数
- def my_sum(i):
- if i<:
- raise ValueError
- elif i<=:
- return i
- else:
- return i+my_sum(i-)
- print(my_sum())
- print(my_sum())
作业:(1)字符串按照单词进行反转,必须保留所有的空格。如:'I love china! '转化为' china! love I'
(2)打印100000之内的所有素数
(3)自己实现一个参数支持可变参数
python学习笔记(6)关键字与循环控制的更多相关文章
- Python学习笔记-Day3-python关键字
1.and 逻辑与 2.assert 判断某个条件是否为真,如果为假,抛出错误 3.break跳出for,while循环 4.class 类定义 5.continue 跳出本次循环,执行下次循环 6. ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- 【Python学习笔记之二】浅谈Python的yield用法
在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...
- Python学习笔记(八)
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...
- 【python学习笔记】6.抽象
[python学习笔记]6.抽象 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型 def function_name(param1, param2): 'this is docum ...
- python学习笔记(一)、列表和元祖
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.通用的序列操作 有几种操作适用于所有序列,包括索引.切片.相加.相乘和成员资格检查.另外,Pyt ...
- Python学习笔记之函数
这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...
- Python学习笔记之常用函数及说明
Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...
- Python学习笔记(四)函数式编程
高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...
随机推荐
- 对Nuxt的研究
Nuxt就是基于Vue的一个应用框架,采用服务端渲染,让你的SPA应用(Vue)也可以拥有SEO Nuxt的生命周期有些在服务端(Node),客户端,甚至两边都在: 1.其他之前都不存在Window对 ...
- Quantitative Strategies for Achieving Alpha(一)
1. 怎么构建测试 所有的测试五等分,表明我们的回测的universe被分为五个组,根据我们要测试的公司因子的值. Quintiles provide a clear answer to that q ...
- iOS9 3DTouch 之 Home Screen Quick Actions
最后更新:2016-12-18 测试环境: Xcode8.1 一.前言 iOS9 已经过去一年了,3D Touch也在项目中实战过,但一直没有总结一下,现在新的项目也用到了3D Touch, 网上找了 ...
- codeforces 704B - Ant Man [想法题]
题目链接:http://codeforces.com/problemset/problem/704/B ------------------------------------------------ ...
- 永久关闭Linux的防火墙
重启网络服务,加载网卡配置文件systemctl restart network 清空防火墙规则iptables -F 关闭selinux防火墙vi /etc/selinux/config修改如下配置 ...
- H5 刮图-刮一刮
<!DOCTYPE html><html><head><style>*{margin:0;padding:0} </style></h ...
- 协议-TCP:TCP
ylbtech-协议-TCP:TCP 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793 ...
- Vue实现音乐播放器(六):jsonp的应用+抓取轮播图数据
用jsonp来获取数据 通过封装方法来获取 在src文件夹下的api文件夹里面去封装一些获取相关部分组件的数据的方法 在api文件夹下的recommend.js中 配置一下公共参数 请求的真实的u ...
- AWK之随心所欲-基础篇
一.简介 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及 生成报表等等. 在 Linux 系统下默认 awk 是 gawk,它是 awk 的 GNU 版本. ...
- nw打包vue项目 安装包
接着上篇nw打包vue项目exe中: copy /b nw.exe+dome.nw dome.exe 出现了dome.exe文件之后,要是打算打包成为安装包,网上推荐的是Inno Setup Comp ...