一、变量和类型

  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)关键字与循环控制的更多相关文章

  1. Python学习笔记-Day3-python关键字

    1.and 逻辑与 2.assert 判断某个条件是否为真,如果为假,抛出错误 3.break跳出for,while循环 4.class 类定义 5.continue 跳出本次循环,执行下次循环 6. ...

  2. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  3. 【Python学习笔记之二】浅谈Python的yield用法

    在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...

  4. Python学习笔记(八)

    Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...

  5. 【python学习笔记】6.抽象

    [python学习笔记]6.抽象 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型 def function_name(param1, param2): 'this is docum ...

  6. python学习笔记(一)、列表和元祖

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.通用的序列操作 有几种操作适用于所有序列,包括索引.切片.相加.相乘和成员资格检查.另外,Pyt ...

  7. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  8. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  9. Python学习笔记(四)函数式编程

    高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...

随机推荐

  1. 大数加法(A + B Problem Plus)问题

    解题思路 两个⼤数可以⽤数组来逐位保存,然后在数组中逐位进⾏相加,再判断该位相加后是否需要进位.为了⽅便计算,可以把数字的低位放到数组的前面,高位放在后面. 样例输入 3 18 22 56 744 5 ...

  2. 用设计模式来替代if-else

    前言 物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态).这里枚举几种回执类型:MT1101.M ...

  3. 【java工具类】AES加密解密

    百度百科一下,AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准 ...

  4. (3.2)狄泰软件学院C++课程学习剖析三

    对课程前面40课的详细回顾分析(一) 0. int main() { // ① Array t(3,3); //普通模式 // ② Array *t=new Array(3,3); //指针方式 // ...

  5. 数据库为什么使用B+树而不是B树

    B树和B+树的区别主要有两点: 在B树中,你可以将键和值存放在内部节点和叶子节点,但在B+树中,内部节点都是键,没有值.叶子节点同时存放键和值 B+树的叶子节点有一条链相连,而B+树的叶子节点各自独立 ...

  6. Why Use the Widget Factory?

    https://learn.jquery.com/jquery-ui/widget-factory/why-use-the-widget-factory/ Writing jQuery plugins ...

  7. UVALive 7325 Book Borders

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  8. loj#6157 A ^ B Problem

    分析 用并查集维护 每次一个连通块的每个点记录它到当前连通块的根的异或值 对于不符合的情况容易判断 最后判断是否都在一个连通块内然后记录答案即可 代码 #include<bits/stdc++. ...

  9. php对bom的处理

    通常只有在windows的notepad中 , 创建文本文件, 保存为UTF-8 时, 它会自动添加3个字节: ef bb bf. 用editplus来看txt文件就可以看得很清楚. 但是, 只有wi ...

  10. Hbase——HA搭建

    架构 master1,2 免秘钥登录 配置环境变量export HBASE_HOME=/root/hbase-0.99.2export PATH=$PATH:$HBASE_HOME/bin 修改配置文 ...