python注释的两种类型_python 基础-注释-数据类型-变量要求-

 2023-09-05 阅读 92 评论 0

摘要:python2与python3的区别( 如有错误,欢迎指点,不断的学习,会不断更新)python定位:优雅、简单、明确宏观上python2:源码重复率高,不规范语言分:编译型、解释型编译型:一次性将所有程序编译成二进制文件优点:运行

python2与python3的区别( 如有错误,欢迎指点,不断的学习,会不断更新)

python定位:优雅、简单、明确

宏观上

python2:源码重复率高,不规范

语言分:编译型、解释型

编译型:一次性将所有程序编译成二进制文件

优点:运行速度快

缺点:开发效率低,不能跨平台

如:C、C++等等

解释型:当程序执行时,一行一行解释

优点:开发效率高,可以跨平台

缺点:运行速度慢

如:python、php等等

注释:

单行注释用:#

多行注释用英文的:''' 注释内容 '''

常见数据类型:

int:整数型

主要用计算,使用不多,记住以下就行:

加:+  减:-   乘:*   除: /    取余:%   整除://  幂:**

取值范围:

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

i = 2

print(i.bit_length()) # 求转换为二进制是 这个变量数据的 位数

bit_length

1 0000 0001 1

2 0000 0010 2

3 0000 0011 2

s = str(i) # int 转换为字符串

b = bool(i) # int 转换为布尔值 只有0是False 非0都是True

bool:布尔型,如:True、False

True    真     1

False   假     0

#同上 布尔值转换为int 只 能输出 0 和 1

i=int(True)

b=int(False)whileTrue:pass

while 1: #这个效率更高,因为电脑只识别0101二进制,True还要转换以下

pass

str:字符串,一般用英文:'内容' , "内容" , ''' 内容:多行'''  ,

可以相加,可以数字加乘,存放少量数据

同上 字符串转换为 int 或布尔值

c= "123"b= int(c) #注:字符串转换为int 前提条件必须是 数值类型

字符串转换为布尔值

s= "" -->False#非空字符串都是True

sifs:print('你输入的为空,请重新输入')else:pass

# 字符串的索引与切片

s = 'ASDFGHJKL'

#索引 字符串有一定顺序,且从0开始

s1 = s[0] # 新的s1与上面的s已经没有任何关联

print(s1)

>> A

s3 = s[-1] # 如果字符串很长,我又去最后几位 就可以倒着取

print(s3)

>> L

# 切片 取后不取前

s2 = s[0:4] # 不影响s哦

print(s2)

>> ASDF

s4 = s[0:] # 全部取,你以为是 = [0:-1] 你会发现最后一位没取,记得取后不取前

s5 = s[:] # 也可以这样写哦!

print(s4,s5)

>> ASDFGHJKL ASDFGHJKL

# 跳这取 s[首:尾:步长]

s6 = s[0:6:2]

print(s6)

>> ADG

# 倒着切

s7 = s[4:0:-1]

print(s7)

>> GFDS

s8 = s[4::-2] # 倒着跳取 到最前面那位

print(s8)

>> GDA

s9 = s[-1::-1] # 倒着取完

print(s9)

>> LKJHGFDSA

s10 = s[::-1] # 倒着取完另一种方法

print(s10)

>> LKJHGFDSA

# 字符串的操作

s = 'asdfghj'

# capitalize 首字母大写

s1 = s.capitalize()

print(s1)

>> Asdfghj

# upper 全部大写

s2 = s.upper()

print(s2)

>> ASDFGHJ

'''

# 一道题 请输入验证码的题

s21 = 'sdFG'

s22 = input("请输入验证码,不区分大小写 ")

if s21.upper() == s22.upper():

print('验证码正确')

else:

print('验证码错误')

'''

# lower 全部小写

s3 = s.lower()

print(s3)

>> asdfghj

# swapcase 大小写翻转

s4 = s.swapcase()

print(s4)

>> ASDFGHJ

# title 每个隔开(特殊字符或数字)单词首字母大写

s5 = 'asd vbn fgh'

s51 = s5.title()

print(s51)

>> Asd Vbn Fgh

# center 填充

s6 = s.center(20) # 居中填充 不写默认空白填充

s61 = s.center(10,'*') # 可以跟参数 10是算字符串总的为 不满用参数填充

print(s6,s61)

>> asdfghj *asdfghj**

# \t 加上前面所占不到8位补8位,超过8位不足16位补16位

s7 = 'fg\tkl'

s71 = s7.expandtabs()

print(s71)

>> fg kl

# len 计算字符串长度

s8 = len(s)

print(s8)

>> 7

# startswith 判断字符串是否以什么开头只能返回 True和False ,后面不加条件 就判断整体

s9 = 'asdDFG'

s91 = s9.startswith('a')

s92 = s9.startswith('d',2,5) # 可以切片判断

print(s91,s92)

>> True True

# find 通过元素 找元素所占的索引,找不到就返回-1

s9 = 'asdDFG'

s10 = s9.find('D')

s101 = s9.index('D') # 另一种方法 找不到会报错 ,首选find

print(s10,s101)

>> 3 3

# strip 删除前后元素 默认删除前后空格

s11 = ' hjkl '

s111 = s11.strip()

s112 = '$%kljflk*'

s113 = s112.strip('*$%') # 可以加参数,里面不按顺序

s114 = s112.rstrip('*$%') # 从右删,左边不动,同理 lstrip:从左删 右边不动

print(s111,s113,s114)

>> hjkl kljflk $%kljflk

# 附一道小题

# username = input('请输入你的名字:')

# if username.strip() == '小米':

# print('答对了')

# count 计数

s12 = s.count('a') # 数字符串所有的元素,也可以两个一起'as'

print(s12)

>> 1

# split 分割 也是字符串转换成列表的一种方式

s13 = 'kjh jkjhk kjhjk'

s131 = s13.split() # 括号里是参数,分隔后参数是不显示的

print(s131)

>> ['kjh', 'jkjhk', 'kjhjk']

str.split(str="", num=string.count(str))#第一个是以哪个参数分割 ,num这个字符串里有多个参数 分割次数,num有指定值则分割num+1,默认为-1,即分割所有

s = 'alexwusirlex'li= s.split('l',1) #以l分割第一个

print(li)#>> ['a', 'exwusirlex']

#format 格式化输出

s14 = '我叫{},今年{},喜欢{}'.format('huang',25,'girl')

s141 = '我叫{0},今年{1},喜欢{1}'.format('huang',25,'girl')

s142 = '我叫{name},今年{age},喜欢{hobby}'.format(name='huang',age=25,hobby='girl')

print(s14,s141,s142)

>> 我叫huang,今年25,喜欢girl 我叫huang,今年25,喜欢25 我叫huang,今年25,喜欢girl

# replace 替换

s15 = '我来看你了你知道吗你知道吗'

s151 = s15.replace('知道','haha',1) # 替换 目标,值 ,有相同的第几个

print(s151)

>> 我来看你了你haha吗你知道吗

tuple:元组,元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。

例:(1,2,3)("a","b","c")

# 元组 只读列表 可循环查询 可切片 儿子不能改 孙子可能可以改

ts = ('name','age','column',[1,2,'hello'],'man')

print(ts[3][2]) # 查

>> hello

ts[3][2] = ts[3][2].upper() # 改孙子元素

print(ts)

>> ('name', 'age', 'column', [1, 2, 'HELLO'], 'man')

ts[3].append('ha') # 添加

print(ts)

>> ('name', 'age', 'column', [1, 2, 'hello', 'ha'], 'man')

#python range() 函数可创建一个整数列表,一般用在 for 循环中。#

#函数语法#range(start, stop[, step])#参数说明:#start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);#stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5#step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

for i in range(0,10): #(开始,结束,步长)

print(i)>> 0 1 2 3 4 5 6 7 8 9

for s in range(10,0,-2):print(s)>> 10 8 6 4 2

for d in range(3,-10,-2):print(d)>> 3 1 -1 -3 -5 -7 -9

# 一道题 两种方法参考

li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds'] # 都打印出来 包括里面的列表元素

# for i in li:

# if type(i) == list:

# for k in i:

# print(k)

# else:print(i)

for i in range(len(li)):

if type(li[i]) == list:

for j in li[i]:

print(j)

else:print(li[i])

list:列表:[] 括起来,每个元素以逗号隔开,可以存储大量数据,而且他里面可以存放各种数据类型比如:

li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

而且列表是有序的,有索引值,可切片,方便取值。

# 列表 增删改查

# 增加 append 还在基础上增加 没有创建新的

p.append('happy,new year')

print(p)

# HR 输入名字 持续增加 当输入Q的时候 就退出

# while 1:

# username = input('>>>')

# if username.strip().upper() == 'Q':

# break

# else:

# p.append(username)

# print(p)

# insert 插入

p.insert(4,'老铁')

print(p)

# extend 插入可迭代的元素

p.extend('你好')

p.extend([1,2])

print(p)

# 删 pop

p2 = p.pop() # 有返回值 不填参数 默认删最后一个

p21 = p.pop(4) # 指定索引位删

print(p,p2,p21)

# remove 按元素删

p.remove('i love you')

print(p)

# clear 清空列表 但不删列结构

p.clear()

print(p)

# del

del p[0:2] # 切片删

del p # 全删包括列

print(p) # 你会发现报错 ,因为没有了,所以他肯定报错

# 改

p[0] = '你好' # 直接对应的 索引位改

p[0] = [4,5,6] # 也可以直接改列表

p[0:3] = '你好' # 把前三个删了 划分到最小的元素添加

p[0:3] = ['hao','ba'] # 添加列表里每一个元素

print(p)

# 查

print(p[0:4]) # 直接查

l = len(p) # 查列表长度

print(l)

# count 查一个元素的次数

print(p.count('ba'))

# index 查元素在列表中的索引位

print(p.index('hao'))

# sort 排序

s = [1,6,5,9,10]

s.sort() # 正向排序

print(s)

s.sort(reverse = True) # 倒向排序

print(s)

s.reverse() # 翻转

print(s)

# 列表的嵌套

t = ['xiaomi','haha','happy new year',1,2]

print(t[1][1]) # 找里面元素的元素

name = t[1].capitalize() # 所选的元素的首字母大写,但里面本质没有改变

print(name)

print(t)

t[0] = name # 这样里面元素已经改变

print(t)

print(t[2].replace('h','好')) # 里面元素替换

t[2] = t[2].replace('h','好')

print(t)

#列表转换成 字符串 join 字符串转换成列表 split

s ='huang's1= '+'.join(s) #可以对可迭代对象任何操作

print(s1)#>> h+u+a+n+g

#''.join()

li = ['alex','wusir','rain']

s2= ''.join(li)print(type(s2))print(s2)#>> #>> alexwusirrain

dict:字典,用{ } 括起来,key不存在重复

'''

# dict

# 数据类型划分:可变、不可变

# 不可变 :元组、bool、int、str 可哈希

# 可变:list、dict、set 不可哈希

# dict key 必须是不可变得数据类型 可哈希

value 任意数据类型。

dict 优点:二分查找去查询、存储大量的关系型数据

特点:3.5版之前是无序的

'''

dict = {

'name':'小米',

'age':'18',

'p1':[{'xuexi':15},20]

}

# 增

dict['hello'] = 'world'

print(dict)

# >> {'name': '小米', 'age': '18', 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}

# 如果有了 会直接覆盖掉

dict['age'] = 25

print(dict)

# >> 'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}

# setdefault

dict.setdefault('身高') # 没有vlaue会填充None

print(dict)

# >> {'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}

dict.setdefault('age','20') # 对里面有键值对,不做任何改变,没有参会添加

print(dict)

# >> {'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}

# 删

# pop

print(dict.pop('age')) # 有返回值

print(dict)

# >> 25

# >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}

print(dict.pop('age',None)) # 如果字典里没有你要删除的键值对,你就要加个返回值,可自定义 防止报错飘红

print(dict)

# >> None

# >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}

# popitem

print(dict.popitem()) # 删除最后一个,3.5以前随机删除 ,返回值 删除的键值对

print(dict)

# >> ('身高', None)

# >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}

# del

del dict['name'] # 所在键值对不在时会报错

print(dict)

# >>{'p1': [{'xuexi': 15}, 20], 'hello': 'world'}

dict.clear() # 清空字典

print(dict)

# >> {}

# 改

# 直接改

dict['age'] = 18

print(dict)

# >> {'age': 18}

# update

dict1 = {'name':'xiaomi','hello':'world'}

dict.update(dict1) # 把dict1的全部键值对 添加到 dict ,相同的覆盖

print(dict1)

print(dict)

# >> {'name': 'xiaomi', 'hello': 'world'}

# >> {'age': 18, 'name': 'xiaomi', 'hello': 'world'}

# 查

print(dict.keys())

print(dict.values())

print(dict.items())

# >> dict_keys(['age', 'name', 'hello'])

# >> dict_values([18, 'xiaomi', 'world'])

# >> dict_items([('age', 18), ('name', 'xiaomi'), ('hello', 'world')])

v1 = dict['name'] # 输出是值,没有就会报错

print(v1)

# >> xiaomi

# get

print(dict.get('name')) # 有就会直接返回值 没有就会返回None

print(dict.get('name2','没有这个值')) # 也可以自定义

# >> xiaomi

# >> 没有这个值

a,b = 1,2

a,b = [1,2]

a,b = [1,2],[3,4]

print(a,b)

# >> 1 2

# >> 1 2

# >> [1,2] [3,4]

# 用一行代码把 a b 值交换

a = 1

b = 2

a,b = b,a

print(a,b)

# >> 2 1

# 一一对应,接受值

for k,v in dict.items():

print(k,v)

# 嵌套

dic = {

'name':['xiaomi','zhangsan','lisi'],

'jihe':{

'time':'123',

'learn_money':19800,

'leader':'huang'

},

'age':18

}

# 改

dic['age'] = 25

print(dic)

#>> {'name': ['xiaomi', 'zhangsan', 'lisi'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}

dic['name'].append('leader')

print(dic)

# >> {'name': ['xiaomi', 'zhangsan', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}

dic['name'][1] = dic['name'][1].upper() # 其中一个值改大写

print(dic)

# 》{'name': ['xiaomi', 'ZHANGSAN', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}

dic['jihe']['gou'] = 8

print(dic)

# >> {'name': ['xiaomi', 'ZHANGSAN', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang', 'gou': 8}, 'age': 25}

# 一道题

f = input('>>>')

for i in f:

if i.isalpha():

f = f.replace(i,'')

o = f.split()

print(o)

print(len(str(o)))

set:集合,用{ } 括起来,集合是无序的,不重复的数据集合,里面的元素是不可变类型

# is 比较,比较的事内存地址

'''

# 集合:可变的数据类型,它里面的元素必须是不可变得数据类型,无序,不重复,{}

set = {1,'sdfsd',2,3,'hello'}

# add 增加

set.add("name")

print(set)

# >> {1, 2, 3, 'name', 'sdfsd', 'hello'}

# update

set.update('leader')

print(set)

# >> {1, 2, 3, 'hello', 'a', 'd', 'name', 'l', 'r', 'sdfsd', 'e'}

# pop 删除

set.pop()

print(set.pop()) # 随机删除 有返回值

print(set)

# 》 1

# 》 {2, 3, 'd', 'r', 'l', 'sdfsd', 'hello', 'a', 'e'}

# remove

set.remove(2) # 按元素去删

print(set)

# 》{'sdfsd', 1, 3, 'hello'}

# clear 清除集合

set.clear()

print(set)

# >> set()

# del 删除整个集合

del set

print(set)

# >>

# 查

for i in set:

print(i)

# 求交集

set1 = {1,2,3,4,"hello"}

set2 = {1,4,2,5,"world"}

set3 = set1 & set2 # 第一种

print(set3)

# >> {1, 2, 4}

print(set1.intersection(set2)) # 第二种

# 》 {1, 2, 4}

# 求并集

print(set1 | set2)

# 》 {1, 2, 3, 4, 5, 'world', 'hello'}

print(set1.union(set2))

# >> {1, 2, 3, 4, 5, 'world', 'hello'}

# 反差集

print(set1 - set2)

# 》 {'hello', 3}

print(set1.difference(set2))

# >> {3, 'hello'}

# 子集 超集

print(set1 < set2)

print(set1.issubset(set2)) # 这两个相同,若返回True 则set1是set2子集

print(set2 > set1)

print(set2.issuperset(set1)) # 这两个相同,若返回True 则set2是set1超集

'''

# set 本身是可变数据类型,但可以让他变成不可变数据类型,冻住

s = frozenset('barry')

print(s,type(s))

# >>frozenset({'b', 'r', 'a', 'y'})

# 一道小题 去重

li = [11,22,33,33,44,55,66,66,77]

set5 = set(li)

print(set5)

li = list(set5)

print(li)

complex:复数

float:浮点型 ,如:12.20

注:

type():查看数据类型的方法

字符串转换成数字:int(str)    ,条件str必须是数值组成

同样数字转换成字符串:str(int)

用户交互input输出的全部是 str

变量:由数字 字母 下划线任意组合,且不能以数字开头

具有可描述性

不能用python中的关键字

以下关键字不能声明为变量名  ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from',

'global', 'if', 'import','in', 'is', 'lambda', 'not','or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

常量:约定俗成 不可更改 ,全部是大写字母

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/666.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息