一、python的数据类型

1.python的基本数据类型包括数值数据类型和字符串数据类型;基本数据类型的特点是不允许改变,如果改变基本数据类型的值,会导致内存的重新分配。

int

整形

二进制 a = 0b1010

八进制 a = 0o37

十进制 a = 25

十六进制 a = 0x34a

float

浮点型

f1 = 0.12,f2 = 1.343e-3

bool

布尔型

flag = True

complex

复数类型

a = complex(2,3)

2.数值的相互转换函数

转十六进制

hex()

转八进制

oct()

转二进制

bin()

转整形

int()

3.变量的三个属性

标识

变量的内存地址,可以用id()查看

类型

变量的类型,可以用type()查看

存储的值

4.判断某个变量是否是某种类型实例

print(isinstance(3, float)) #False

5.复数类型的使用

a = complex(2,2)

b= complex("3+2j")print(a)print(b)print(a+b)print(a-b)print(a*b)print(a/b)

(2+2j)

(3+2j)

(5+4j)

(-1+0j)

(2+10j)

(0.7692307692307692+0.15384615384615388j)

6.python的字符串类型不像Java可以与数值类型相加,如“str”+1会报错,但python支持字符串与数值相乘,表示将字符串重复多少次。

#报错

#print("str"+1)

#重复字符串

print("The life is short,i love python\n" * 3) #The life is short,i love python

#The life is short,i love python

#The life is short,i love python

#转为大写

print("lower".upper()) #LOWER

#转为小写

print("UPPER".lower()) #upper

#去除前导和尾部空白

print(" hello python ".strip()) #hello python

#也可以指定去除的字符

print("##hello python##!".strip("#!")) #hello python

#求长度

print(len("hello")) #5

#拆分字符串

print("orange banana apple".split(" ")) #['orange', 'banana', 'apple']

#用指定字符串连接一个列表

print(" ".join(["orange","apple","banana","peach"])) #orange apple banana peach

#判断字符串是否以某个子串开始

print("good good study".startswith("go")) #True

#判断字符串是否以某个子串开始

print("day day up".endswith("up")) #True

#统计子串出现次数

print("Python is a nascent programming language.".count("p")) #1

#查找子串出现的下标

print("Sometimes your whole life boils down to one insane move.".find("wh")) #15

#判断是否是数字

print("moive".isdigit()) #False

#判断是否是字母

print("money".isalpha()) #True

#判断是否是空格

print("i declared".isspace()) #False

7.Python的字符串最强大之处是切片操作

str = "Attitude determines altitude."

#取出Attitude(外国人的习惯是左闭右开,即包括左下标,不包括右下标)

print(str[0:9]) #Attitude

print(str[0:20:3]) #Aiddeis (每3个取一个)

print(str[-5:-1]) #tude

8.Python的字符串可以用单引号,双引号,三引号表示,但字符串跨行时只能用三引号或反斜杠

str = '''Be

a

laborious

bee'''

print(str)

str1= "Be \

a \

hard-working \

man"

print(str1) #Be a hard-working man

9.实现字符串反转

#切片 str[开始位置:结束位置:步数] 将步数设为-1

defstrReverse1(str):return str[::-1]#将字符串转为列表,反转后再连接为字符串

defstrReverse2(str):

newList=list(str)

newList.reverse()return "".join(newList)print(strReverse1("python"))print(strReverse2("python"))

二、输入输出

1、输入函数input()

#输入一个字符串

myStr = input("请输入一个字符串:")print(myStr)#以逗号分割输入多个数

a,b,c = eval(input("请输入3个数:"))print(a,b,c)

2.输出函数 print()

#以逗号分割输出多个变量,输出后显示的分隔符是空格,结尾会输出一个换行符

print("i","am","studying","python") #i am studying python

#指定分隔符和结尾符

print("i","am","studying","python",sep="#",end=" ")print()#类似c语言的输出

name = "jackson"age= 22salary= 5000.0

print("name:%s,age:%d,salary:%.3f" %(name,age,salary))#python特有的输出形式

print("I like eating {} and {}".format("banana", "pear")) #按位置填充print("His name is {name} and he is a {sex}".format(sex='male',name='judy')) #按具体名字填充print("{1} can arm our {0}".format("brain","knowledge")) #按编号填充print("The happiness rate of chinese citizen is up to {:.3f}".format(0.45)) #设置浮点数输出格式为小数点后三位print("The population of china is {:,d} million".format(1300)) #千分位用逗号表示

三、集合数据类型

Python的集合数据类型包括列表,元组,字典,集合

列表

list(内部元素可以重新赋值,列表和列表可以相加,列表和数字可以相乘)

arr = ["jack"]

元组

tuple(内部元素不能重新赋值,元组可以和元组相加,元组可以和数字相乘)

myTuple = ("nacy","rose")

字典

dict(无序,可重新赋值,键唯一,值不唯一,键为不可变元素)

myMap = {"name":"zhangshan","age":12}

集合

set(无序,唯一,可进行集合间的交并差补)

mySet1= set(["judy","tom","martin"]) mySet2 = set("lily")

1.列表

#四种遍历方式

fruits = ["orange","banana","pear","peach"]

for item infruits:print(item,end=" ")print()for item initer(fruits):print(item,end=" ")print()for i,item inenumerate(fruits):print(i,"===>",item,end=" ")print()for item inrange(len(fruits)):print(fruits[item],end=" ")print()#重复列表四次

print(fruits*4) #['orange', 'banana', 'pear', 'peach', 'orange', 'banana', 'pear', 'peach', 'orange', 'banana', 'pear', 'peach', 'orange', 'banana', 'pear', 'peach']#列表连接

print(fruits+["pineapple","apple"])#删除指定下标的元素,不提供参数则删除表尾元素

print(fruits.pop(2)) #['orange', 'banana', 'pear', 'peach', 'pineapple', 'apple']

#追加元素 append追加和extend追加有区别#append追加的是列表#extend追加的是元素

fruits.append(["Coconut"])print(fruits) #['orange', 'banana', 'peach', ['Coconut']]

fruits.pop()

fruits.extend(["Coconut"])print(fruits) #['orange', 'banana', 'peach', 'Coconut']

#列表反转

fruits.reverse()print(fruits) #['Coconut', 'peach', 'banana', 'orange']

#指定位置插入

fruits.insert(2, "nothing")print(fruits) #['Coconut', 'peach', 'nothing', 'banana', 'orange']

#删除列表切片

del fruits[1:3]print(fruits) #['Coconut', 'banana', 'orange']

2.元组

myTuple1 = ("bird","plane","vehicle","subway")#不能对单个元素重新赋值(报错)#myTuple1[0] = "parrot"

#但可以对整个元组赋值

myTuple1 = ("python","c++","java")print(myTuple1) #('python', 'c++', 'java')

#创建空元组

emptyTuple =()print(emptyTuple) #()

#注意创建一个元素的元组要在结尾加逗号

oneTuple = (1)print(oneTuple) #1 不加逗号编译器会认为括号是进行算数运算,而不是创建元组

oneTuple = (1,)print(oneTuple) #(1,)

#元组的取值

print(myTuple1[0]) #python

print(myTuple1[:]) #('python', 'c++', 'java')

print(myTuple1[:1]) #('python',)

print(myTuple1[len(myTuple1)-1:]) #('java',)

#元组的重复

print(myTuple1 *4) #('python', 'c++', 'java', 'python', 'c++', 'java', 'python', 'c++', 'java', 'python', 'c++', 'java')

#元组相加

print(myTuple1 + ("one","two","three")) #('python', 'c++', 'java', 'one', 'two', 'three')

3.字典

myDict = {"one":1,"two":343.33,"three":True}#字典的取值

print(myDict["one"]) #1

#判断键是否存在

print("three" in myDict) #True

#更新值

myDict["one"] = 100

print(myDict) #{'one': 100, 'two': 343.33, 'three': True}

#清空字典

myDict.clear()print(myDict) #{}

4.集合

#以字符串创建set,自动去除重复元素

mySet = set("hello")print(mySet) #{'o', 'l', 'e', 'h'}

#以list创建set

mySet1 = set(["a","m","e","o"])print(mySet1) #{'o', 'a', 'm', 'e'}

#以map创建set,值为map的键

mySet2 = set({"name":1,"age":2})print(mySet2) #{'name', 'age'}

#交集

print(mySet & mySet1) #{'e', 'o'}

#并集

print(mySet | mySet1) #{'l', 'a', 'e', 'h', 'm', 'o'}

#差集

print(mySet - mySet1) #{'l', 'h'}

#对称差分运算

print(mySet ^ mySet1) #{'l', 'a', 'h', 'm'}

四、强大的列表解析功能

importrandom#列表解析#生成10个随机数,返回一个新列表

list1 = [random.randint(0,100) for i in range(0,10)]for item inlist1:print(item,end=" ") #74 38 75 45 96 1 38 93 58 80

print()

#求1到20的平方组成的列表

list2= [i*i for i in range(1,21)]for num inlist2:print(num,end=" ") #1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400

#选出list2中的偶数

list3 = [i for i in list2 if i % 2 ==0]for num inlist3:print(num) #4 16 36 64 100 144 196 256 324 400

#按行遍历矩阵

list4 = [[1,2,3,4],[5,6,7,8],[2,3,4,5],[6,7,8,9]]

list5= [[1,4,5,6],[2,1,3,4],[3,4,2,1],[7,8,2,1]]print([row for row in list4]) #[[1, 2, 3, 4], [5, 6, 7, 8], [2, 3, 4, 5], [6, 7, 8, 9]]

#按列遍历矩阵

print([list4[row][1] for row in range(len(list4))]) #[2, 6, 3, 7]

#遍历对角线

print([list4[i][i] for i in range(len(list4))]) #[1, 6, 4, 9]

#逐个遍历

print([list4[row][col] for row in range(len(list4)) for col in range(len(list4[row]))]) #[1, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9]

#矩阵相加

print([list4[row][col] + list5[row][col] for row in range(list4.__len__()) for col in range(list4[row].__len__())])#[2, 6, 8, 10, 7, 7, 10, 12, 5, 7, 6, 6, 13, 15, 10, 10]

#转置矩阵

print([row for row in zip(*list4)]) #[(1, 5, 2, 6), (2, 6, 3, 7), (3, 7, 4, 8), (4, 8, 5, 9)]

#求最大长度对应的字符

students = ["jack","shirely","kangkang","mary"]

maxLen= max([len(item) for item instudents])print(maxLen)

maxStr= [temp for temp in students if len(temp) ==maxLen]print(maxStr) #['kangkang']

五、内置函数

#几个内置的高阶函数 map,filter,reduce,sorted#map用于将一函数规则应用于一可迭代集合的所有元素#reduce用于将一函数规则反复作用于一可迭代集合的元素,传入的函数参数必须为两个#filter将一可迭代集合中适用于函数规则的元素挑选出来#sorted用于对可迭代集合进行排序

#map的一个栗子(将字符串转为对应数字)

#匿名函数求对应字符的数字表示如'0'对应数字0,'1'对应1

f = lambda ch:{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[ch]

#上面函数的功能与这个一样

f1= lambdach:int(ch)print(list(map(f,"322"))) #[3, 2, 2]

#reduce的一个栗子(将字符串转换为对应的十进制数)

defstr2Decimal(x,y):return x*10 +yprint(reduce(str2Decimal,map(f,"232"))) #232

#filter的一个栗子(使用埃氏筛选法筛选素数)

seq = range(2,51)for i inseq:

f= lambda x : x == i or x %i

seq=list(filter(f,seq))print(list(seq)) #[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

#sorted的一个栗子

rules = lambdax:x.lower()

reles2= lambda x:x["age"]

students= ["jack","Nacy","Kangkang","asia"]

aMap= [{"name":"kangknag","age":25},{"name":"ag","age":13},{"name":"wnag","age":23}]

newlist= sorted(students, key=rules, reverse=False)print(sorted(aMap,key=reles2)) #[{'name': 'ag', 'age': 13}, {'name': 'wnag', 'age': 23}, {'name': 'kangknag', 'age': 25}]

print(newlist) #['asia', 'jack', 'Kangkang', 'Nacy']

先写到这吧,有点累。。。

python换发型_初学Python的一些细节相关推荐

  1. python的难点_初学python的操作难点总结(新手必看篇)

    如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...

  2. python xpath循环_初学Python,就用它爬取一点情话说给她听!

    老铁们,一年一度的520就要来了,大家有没有正在抓耳挠腮的给女朋友准备礼物呢? 作为一个业余非专业程序猿(ps:自称程序猿,哈哈),最近初学python,用它来抓取情话网站的100页情话,作为给女朋友 ...

  3. python return用法_初学Python要了解什么 装饰器知识汇总有哪些

    初学Python要了解什么?装饰器知识汇总有哪些?在Python学习过程中,有多种方法对函数和类进行加工,相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用,比 ...

  4. python拟合非线性模型_初学Python拟合Langmuir非线性方程

    以前都是用origin来进行拟合,但是参数初值需要猜测,有时候不一定能够得到正确结果.后来用过MATLAB的工具箱,可以拟合,但电脑要安装MATLAB还是占挺大空间的.花了一下午了解了一下用Pytho ...

  5. 儿童学python第一课_初学Python(第一课)

    今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了. Python相对于C\C++来说,在语法方面已经很简单了:甚至对于JavaScript也 ...

  6. python换发型_神经网络P图神器:摘墨镜,戴美瞳,加首饰,换发型【TensorFlow实现】...

    部分效果 5个步骤: 安装TensorFlow 下载 SC-FEGAN 源码 下载模型文件 安装所需模块 运行程序 1. 安装TensorFlow GPU版本 gpu比cpu快的不是一点点,如果电脑支 ...

  7. python换零钱_黄哥Python, 贪心算法解决换零钱问题

    下面的文字来源于维基百科 贪心算法(英语:greedy algorithm) 又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法.比如 ...

  8. 学好python的技巧_初学Python搞不懂基础怎么学得好?掌握这9个技巧你也可以做大神...

    整理字符串输入 整理用户输入的问题在编程过程中极为常见.通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作.但是如果问题很复杂,可能有更好的方法来解决: ...

  9. python函数笔记_初学Python函数的笔记整理

    定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def m ...

最新文章

  1. iOS组件化方案的几种实现
  2. 【论文串讲】从GPT和BERT到XLNet
  3. 对话诺奖得主:科学离不开国际合作
  4. Java多线程——FutureTask源码解析
  5. ts的小demo--贪吃蛇(尚硅谷教程笔记)
  6. 解决Ubuntu、Deepin机箱前面板插耳机没声音
  7. 初中计算机 课题研究,初中信息技术课题怎么做
  8. 【czy系列赛】czy的后宫4 bzoj1925 [Sdoi2010]地精部落
  9. html把图片色调一致,ps怎样让两张不同的图片色调统一
  10. 【软件测试】以闭环思维解决BUG复现率高问题
  11. c语言bellman算法,深入理解Bellman-Ford(SPFA)算法
  12. java getmethod 无参数_Java getMethod类型参数
  13. go项目杀进程并重启shell
  14. iPhone手机使用:iPhone XR的双卡双待设置
  15. 基于Kinetis 60、HC-SR04超声测距模块的简易水情测量装置
  16. 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解
  17. 海康威视(HIKViSION)2009年校园招聘笔试题-杭州(2)
  18. 用python祝福父亲节_2020年父亲节给爸爸的微信祝福语27条
  19. [GWCTF 2019]枯燥的抽奖 1
  20. linux 判断字符串格式,shell基础(二)字符子串及类型判断符

热门文章

  1. grafan 6.3.x pannel研究
  2. 利用GATK4.1 mutect2寻找体细胞突变(SNV和INDEL)
  3. 为什么时钟和复位信号要在综合阶段设置为set_drive 0和set_dont_touch_network
  4. 小白的markdown基础学习笔记
  5. 计算机关于容量换算long转double精确度更准确
  6. oracle fnd_global,Oracle Report(Report 6i/RDF)使用全局变量fnd_global, fnd_frofile
  7. PNAS:整合抑郁症的分子、细胞和皮层神经影像特征
  8. java无法下载jnlp_java-JNLP下载期间FileNotFoundException
  9. 如何做一个自己的网站?
  10. Local declaration of '' hides instance variable