#小部分老男孩pyton课程

 #所有脚本第一句话都要写解释以下脚本是用什么解释器
#!/usr/bin/env python
#语言设置为:简体中文
#_*_coding:utf-8_*_ #############################################################################>>>
#
#变量定义的规则: #变量名只能是 字母、数字或下划线的任意组合
#变量名的第一个字符不能是数字
#以下 关键字 不能声明为变量名
['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']
#
#############################################################################>>>
#input <输入>
#print<打印>
username = input('用户名')
password = input('密码')
print(username,password)
######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#另存为 passwd.py到 c:\users\alex\pycharmprojects\s14\day1>python import getpass username = input('usernmae:')
password = getpass.getpass('password:') print(username,password) cd c:\users\alex\pycharmprojects\s14\day1>python passwd.py ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # .format <格式>
# import <调用> getpass<py系统自带函数模块,密文输入>
# print <打印>
# if <条件成立执行>
# and <而且>
# else <if条件不成立时执行> import getpass name = 'alex'
word = 'as123' username = input('名字:')
password = input('密码:') if name == username and word == password:
print('欢迎 {N} 登录'.format(N=name))
else:
print('账号或者密码错误') ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # i <变量名>
# range(10) <范围> (0,1,2,3,4,5,6,7,8,9)<0-9十个数> for i in range(10):
print('loop',i) # (0,10,3) <起始数,结束值,步长> <步长默认加1>
for i in range(0,10,3):
print('loop',i) ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # continue <跳出本次循环,重新循环> for h in range(0,10):
if h <3:
print('loop',h)
else:
print('kkkkkk...')
continue
print('yyyyyy...')
print('呵呵呵...') ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # for t in range(9) <条件循环> <变量名> <在> <范围(参数)>
# print <打印>
# if <条件判断>
# break <中止程序> for t in range(9):
print('______',t)
for j in range(11,50):
print(j)
if j >= 22:
break #############################################################################>>> #模块寻找路径先在当前目录下寻找,然后在全局环境变量目录里寻找 #'''你会发现,上面自己写的tab.py模块只能在当前目录下导入,
#如果想在系统的何何一个地方都使用怎么办呢? 此时你就要
#把这个tab.py放到python全局环境变量目录里啦,基本一般都
#放在一个叫 Python/2.7/site-packages 目录下,这个目录
#在不同的OS里放的位置不一样,用 print(sys.path) 可以查
#看python环境变量列表。'''
#系统自带模块在以下目录里为 XXX.py的文件
#C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib #默认第三方模块在以下目录里(即是全局环境变量目录)
#C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages import sys
print(sys.path) #打印环境变量
print('------我割割割-------')
print(sys.argv) #打印路径 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> import os #cmd = os.system('dir')#执行命令,不保存结果 #print('查看1',cmd) #直接输出到屏幕上 #cmd2 = os.popen('dir2').read()
#print('查看2',cmd2) cmd3 = os.mkdir('查看3')
print('查看3',cmd3) #############################################################################>>> 1、数字
int(整型)
-9223372036854775808~9223372036854775807 float(浮点型)
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4
complex(复数)
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数 2、布尔值
  真或假
  1 或 0 3、字符串
"hello world"
#############################################################################>>> #############################################################################>>>
#
# 字符串格式化符号含义
#
# 符号 说明
#
# %c <格式化字符及其ASCII码><a=97>
# >>> '%c %c %c %c %c' % (97,98,99,100,101)
# >>> 'a b c d e'
# %s <格式化字符串>
# >>> '%s' % 'I love fc'
# >>> 'I love fc'
# %d <格式化整数>
# >>> '%d + %d = %d' % (4,5,4+5)
# >>> '4 + 5 = 9'
# %o <格式化无符号八进制数>
# %x <格式化无符号十六进制数> <10=a,11=b>
# >>> '%x' % 160
# >>>'a0'
# %X <格式化无符号十六进制数(大写)> <10=A,11=B>
# %f <格式化定点数,可以指定小点后的精度>
# >>> '%F' % 27.986
# >>> '27.986000'
# %e <用科学计数法格式化定点数>
# >>> '%e' % 27.158
# >>> '2.715800e+01'
# %E <作用同%e,用科学计数法格式化定点数>
# %g <根据值的大小决定使用%f或%e>
# %G <作用同%g,根据值的大小决定使用%f或%E>
#
#############################################################################>>>
#print<打印>
#打印数据类型 name = input('名字:')
age = int(input('年龄:'))
print(type(age), type(str(age)))
job = input('行业:')
salaty = input('年薪:') info = '''
--------info of %s -----
Name:%s
Age:%d
job:%s
salary:%s
''' %(name,name,age,job,salaty)
print(info)
============== RESTART: C:/Users/Administrator/Documents/学习.py ==============
名字:a
年龄:12
<class 'int'> <class 'str'>
行业:sdad
年薪:2555 --------info of a -----
Name:a
Age:12
job:sdad
salary:2555 >>> #############################################################################>>>
#显式转换的多种类型
#
#int (x [,base]) ⇒ 将x转换为一个十进制的整数
#long(x [,base]) ⇒ 将x转换为一个十进制的长整数
#float(x) ⇒ 将x转换为一个浮点数
#str(object) ⇒ 转换为字符串
#repr(object) ⇒ 转换为表达式字符串
#eval(str) ⇒ 用来计算在字符串中的有效Python表达式,并返回一个对象
#tuple(seq) ⇒ 将序列seq转换为一个元组
#list(seq) ⇒ 将序列seq转换为一个列表
#chr(x ) ⇒ 将一个整数转换为一个字符
#unichr(x ) ⇒ 将一个整数转换为Unicode字符
#ord(x ) ⇒ 将一个字符转换为它的整数值
#hex(x ) ⇒ 将一个整数转换为一个十六进制字符串
#oct(x ) ⇒ 将一个整数转换为一个八进制字符串
#############################################################################>>> #############################################################################>>>
# 当行注释:# 被注释内容
# 多行注释: ''' 被注释的内容 '''
#
#
info = ''' '''
#
#############################################################################>>> ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #format<格式> name = input('名字:')
age = int(input('年龄:'))
print(type(age), type(str(age)))
job = input('行业:')
salaty = input('年薪:') info2 = '''
--------info of {N} --------
姓名:{N}
芳龄:{A}
职业:{J}
工资:{S}
'''.format(N=name,
A=age,
J=job,
S=salaty) print(info2) ============== RESTART: C:\Users\Administrator\Documents\学习.py ==============
名字:yyy5
年龄:88
<class 'int'> <class 'str'>
行业:dgdgdg5dgdfg
年薪:9995121 --------info of yyy5 --------
姓名:yyy5
芳龄:88
职业:dgdgdg5dgdfg
工资:9995121 >>>
###################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #format<格式> name = input('名字:')
age = int(input('年龄:'))
print(type(age), type(str(age)))
job = input('行业:')
salaty = input('年薪:') info3 = '''
--------info of {0} --------
姓名:{0}
芳龄:{1}
职业:{2}
工资:{3}
'''.format(name,age,job,salaty) print(info3) >>>
============== RESTART: C:\Users\Administrator\Documents\学习.py ==============
名字:d5as6d5
年龄:56565
<class 'int'> <class 'str'>
行业:ad2a6sd6a
年薪:26s5d6s2d6s2 --------info of d5as6d5 --------
姓名:d5as6d5
芳龄:56565
职业:ad2a6sd6a
工资:26s5d6s2d6s2 >>> #############################################################################>>> #——————————数据运算——————
#
#——算数运算:——
#
# 运算符 描述 实例
#
# + 加-两个对象相加________________________________________________________________a+b 输出结果 30 15+15=30
# - 减-得到负数或者一个数减去另一个数______________________________________________a-b 输出结果-10 20-30=-10
# * 乘-两个数相乘或者返回一个被重复若干次的字符串__________________________________a*b 输出结果200 20*10=200
# / 除-X除以Y______________________________________________________________________b/a 输出结果2 4/2=2
# % 取模-返回除法的余数____________________________________________________________b%a 输出结果0
# ** 幂-返回X的Y次幂________________________________________________________________a**b 为10的20次方,输出结果100000000000000000000
# // 取整除-返回商的整数部分________________________________________________________9//2 输出结果 4 9.0//2.0 输出结果4.0
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——比较运算:—— false<假0> true<真1>
#
# 运算符 描述 实例
#
# == 等于-比较对象是否相等__________________________________________________________(a==b)返回False
# != 不等于-比较两个对象是否不相等__________________________________________________(a!=b)返回true
# <> 不等于-比较两个对象是否不相等__________________________________________________(a<>b)返回true 这个运算符类似 !=
# > 大于-返回X是否大于Y____________________________________________________________(a>b)返回False
# < 小于-返回X是否小于y。所有比较运算符返回1表示真,返回0表示假____________________(a<b)返回true
# 这分别与特殊的变量True和False等价.注意,这些变量名的大写。
# >= 大于等于-返回x是否大于等于y____________________________________________________(a>=b)返回False
# <= 小于等于-返回x是否小于等于y____________________________________________________(a>=b)返回true
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——赋值运算:——
#
# 运算符 描述 实例
#
# = 简单的赋值运算符_______________________________________________________________c = a + b 将 a + b 的运算结果赋值给 c
# += 加法赋值运算符_________________________________________________________________c += a 等效于 c = c + a
# -= 减法赋值运算符_________________________________________________________________c -= a 等效于 c = c - a
# *= 乘法赋值运算符_________________________________________________________________c *= a 等效于 c = c * a
# /= 除法赋值运算符_________________________________________________________________c /= a 等效于 c = c / a
# %= 取模赋值运算符_________________________________________________________________c %= a 等效于 c = c % a
# **= 幂赋值运算符___________________________________________________________________c **= a 等效于 c = c ** a
# //= 取整赋值运算符_________________________________________________________________c //= a 等效于 c = c // a _
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——逻辑值运算:——
#
# 运算符 描述 实例
#
# and 布尔“与”-如果X为False, X and Y ,返回False,否则它返回Y的计算值_____________(K and J)返回true
# or 布尔“或”-如果X为True, 它返回True,否则它返回Y的计算值_________________________(K or J)返回true
# not 布尔“非”-如果X为True,返回False,如果X为False,它返回True______________________not(K and J)返回true
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——成员运算:——
#
# 运算符 描述 实例
#
# in 如果在指定的序列中找到值返回True,否则返回False,________________________________x在y序列中,如果x在y序列中返回True
# not in 如果在指定的序列中没有找到值返回True,否则返回False,____________________________x不在y序列中,如果x在y序列中返回True
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——身份运算:——
#
# 运算符 描述 实例
#
# is is是判断两个标识符是不是引用自一个对象__________________________________________x is y ,如果 id(x) 等于 id(y) ,is 返回结果1
# is not is not是判断两个标识符是不是引用自不同对象______________________________________x is not y ,如果 id(x) 不等于 id(y) ,is not 返回结果1
#
##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——位运算:——
#
# 运算符 描述 实例
#
# & 按位与运算符_________________________________________________________________(a&b) 输出结果 12 ,二进制解释: 0000 1100
# | 按位或运算符_________________________________________________________________(a|b) 输出结果 61 ,二进制解释: 0011 1100
# ^ 按位异或运算符_______________________________________________________________(a^b) 输出结果 49 ,二进制解释: 0011 0001
# ~ 按位取反算符_________________________________________________________________(~a) 输出结果 -61 ,二进制解释: 1100 0011 ,在一个有符号二进制数的补码形式。
# << 左移动运算符_________________________________________________________________a<<2 输出结果 240 ,二进制解释: 1111 0000
# >> 右移动运算符_________________________________________________________________a>>2 输出结果 15 ,二进制解释: 0000 1111
#
###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# 按位取反运算规则(按位取反再加1)
#!/usr/bin/python a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0 c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1
print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#——运算符优先级:——
#
# 运算符 描述
#
# ** ___指数(最高优先级)
# ~ + - ___按位翻转,一元加号和减耗(最后两个的方法名为+@和-@)
# * / % // ___乘,除,取模和取整数
# + - ___加法减法
# >> << ___右移,左移运算符
# & ___位 'AND'
# ^ | ___位运算符
# <= < > >= ___比较运算符
# < > == != ___等于运算符
# = %= /= //= -= += *= **= ___赋值运算符
# is is not ___身份运算符
# in not in ___成员运算符
# not or and ___逻辑运算符
#
######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# * / + - <一元操作符>
# %[百分比,取余数] **[幂运算操作符,比一元操作符左边高比一元操作符右边低]
# //[地板除法]
#
#运算符优先级
# 幂运算 **
# 正负号 +* -*
# 算术操作符 * / // + -
# 比较操作符 < <= > >= == !=
# 逻辑运算符 not and or
#
#比较操作符 < <= > >= == != <根据表示的值进行比较>
#
#true <1,真> false <0,假>
#逻辑符 and <左右都为true执行> or <左右 或者为true执行> not<相反执行> ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #三元操作符 语法: x if 条件 else y
#x,y = 4, 5
#if x < y:
# small=x
#else:
# small=y
#改进为
#small = x if x < y else y
#
#assert<断言,关键字,AssertionError,程序检查点> #true <1,真> false <0,假>
#while<而,循环体,为true时执行>
#
#for<为,循环体> in<在>
#
#for 目标 in 表达式
# 循环体 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 三元运算 result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2 三、进制 二进制,01
八进制,01234567
十进制,0123456789
十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
计算机内存地址和为什么用16进制? 为什么用16进制
1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)
2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算 16进制用在哪里
1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式 3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ################################################################################
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#字符串的操作特性:不可修改
#
#常用变量演示
name = 'my name is alex'
print(name.capitalize())
print(name.count('a'))
print(name.center(50,'-'))
print(name.endswith('ex'))
print(name.expandtabs(tabsize=30))
print(name[name.find('name'):])
print(name.format(name='alex',year=23))
print(name.format_map( {'name':'alex','year':12} ))
print('ab23'.isalnum())
print('abA'.isalpha())
print('1A'.isdecimal())
print('1A'.isdigit())
print('a 1A'.isidentifier())#判断是否合法的标识符
print(''.isnumeric())
print(''.isspace())
print('My Name IS '.istitle())
print('My Name IS '.isprintable())#设备终端使用
print('My Name IS '.isupper())
print('+'.join(['','','']))
print( name.ljust(23,'*'))
print( name.rjust(25,'-'))
print( 'Alex'.lower())
print( 'Alex'.upper())
print( '\n Alex'.lstrip())
print( 'Alex \n'.rstrip())
print( ' Alex\n'.strip()) print('---随机密码----')
h = str.maketrans('abcdefli','123$@456')#随机密码
print('alex li'.translate(h))
print(' ') print('---替换----')
print('alex li lllll'.replace('l','L',4))
print(' ') print('---寻找下标号----')
print('alex li'.rfind('l'))
print(' ') print('---按字符串分割----')
print('al ex lil'.split('l'))
print(' ') print('---按换行\n分割----不同系统的换行')
print('1+2\n+3+4'.splitlines())
print(' ') print('---按换行\n分割----')
print('Alex Li'.swapcase())
print(' ') print('---第一字母大写----')
print('llex Li'.title())
print(' ') print('---前边用0填充----')
print('lex Li'.zfill(26))
print(' ') ####>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#变量名.capitalize()
#
#capitalize() <把字符串的第一个字符改为大写>
#casefold() <把整个字符串的所有的字符变成小写>
#center(width) <将字符串居中,并使用空格填充至长度width的新字符串>
#count(sub[,start[,end]]) <返回sub在字符串里边出现的次数,start和end参数表示范围,可选>
#encode(encoding='utf-8',errors='strict') <以encoding指定的编码格式对字符串进行编码>
#endswith(sub[,start[,end]]) <检查字符串是否sub字符串结束,如果是返回true,否则返回false,
# start和end参数表示范围,可选 >
#expandtabs([tabsize=8]) <把字符串的tab符号(\t)转换为空格,字符默认的空格数是tabsize=8>
#find(sub[,start[end]]) <检测sub是否包含在字符串中,如果有返回索引值,否则返回-1,
# start和end参数表示范围,可选>
#index(sub[,start[,end]]) <跟find方法一样,不过如果sub不在string中会产生异常>
#isalunum() <如果字符串至少有一个字符都是字母或数字则返回true,否则返回false>
#isalpha() <如果字符串至少有一个字符并且所有字符都是字母则返回true,否则返回false>
#isdecimal() <如果字符串只包含十进制数字则返回true,否则返回false>
#isdingt() <如果字符串中只包含数字,则返回true,否则返回false>
#islower() <如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,
# 则返回ttue,否则返回false>
#isnumeric() <如果字符串中只包含数字字符,则返回true,否则返回false>
#isspace() <如果字符串中只包含空格,则返回true,否则返回false>
#istile() <如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写)
# 则返回ttue,否则返回false>
#isupper() <如果字符串至少包含一个区分大小写的字符,并且这些字符都是大写,
# 则返回ttue,否则返回false>
#join(sub) <以字符串作为分隔符,插入到sub中所有的字符之间>
#ljust(width) <返回一个左对齐的字符串,并且使用空格填充至长度为width的新字符串>
#lower() <转换字符串中所有大写字符为小写>
#lstrip() <去掉字符串左边的所有空格>
#partition(sub) <找到子字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub),
# 如果字符串中不包含sub则返回('原字符串','','')>
#replace(old,new[,count]) <把字符串中的old子字符串替换成new子字符串,
# 如果count指定,则替换不超过count次>
#rfind(sub[,start[,end]]) <类似于find()方法,不过是从右边开始查找>
#rindex(sub[start[,end]]) <类似于index()方法,不过是从右边开始>
#rjust(width) <返回一个右对齐的字符串,并且使用空格填充至长度为width的新字符串>
#rpartion(sub) <类似于partion()方法,不过是从右边开始查找>
#rstrip() <删除字符串末尾的空格>
#splis(sep=none,maxsplit=-1) <不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,
# 则仅分隔maxsplit个子字符串,返回切片后的子字符串拼接列表>
#splitlines(([keepends])) <按照'\n'分隔,返回一个包含各行作为元素的列表,
# 如果keepends参数指定,则返回前keepends行>
#startswith(prefix[,start[,end]])<检查字符串是否以prefix开头,是则返回true,否则返回false,
# start和end参数可以指定范围检查,可选>
#strip([chars]) <删除字符串前边和后边所有的空格,chars参数可以指定删除的字符,可选>
#swapcase() <翻转字符串中的大小写>
#title() <返回标题化(所有的单词都以大写开始,其余字母均小写)>
#####>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#translate(table) <根据table的规则(可以由str.maketrans('a','b')定制)转换字符串只的字符>
# >>> str1 = 'ssssssaaaaasssss'
# >>> str1.translate(str.maketrans('s','b'))
# 'bbbbbbaaaaabbbbb'
######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#upper() <转换字符串中的所有小写字符为大写>
#zfill(width) <返回长度为width的字符串,原字符串右对齐,前边用0填充>
############################################################################################################# ###########################################################################>>>
#
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#
#列表、元组操作
# ' ' 在python里 ' ' 里的内容为 '字符串' 。不加 ' ' 为变量名
#print()打印 # 英文名字大全 http://ename.dict.cn/list/all/M names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] #通过下标访问列表中的元素,下标从0开始计数
print('---通过下标访问列表中的元素----') print(names[0])
print(names[1],names[3],names[4])
print(names[-1])
print(names[-2]) #还可以倒着取
print(' ') print('---切片:取多个元素---')
print(names[1:4]) #取下标1至下标4之间的数字,包括1,不包括4
print(names[1:-1]) #取下标1至-1的值,不包括-1
print(' ') print('---切片:取下标1至-1的值,不包括-1---')
print(names[0:3]) #取下标1至-1的值,不包括-1
print(names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样
print(' ') print('---参数默认是0,-1就是倒数第1个----')
print(names[:3]) #如果想取最后一个,必须不能写-1,只能这么写
print(names[3:-1]) #这样-1(最后一个)就不会被包含了
print(' ') print('---参数默认是0----')
print(names[0:5:2]) #后面的2是代表,每隔一个元素,就取一个,默认是1
print(names[::3]) #参数默认是0,所以可以不写
print(' ') print(' ')
print('---追加names.append('')---每次只能追加一个')
names.append('我是新来的',)
print(names)
print(' ') print(' ')
print('---插入names.insert(下标号,名字)---每次只能插入一个')
names.insert(3,'强行插队到下标位置3')
print(names)
print(' ') print(' ')
print('---修改names[下标号]---')
names[5] = '修改换人了'
print(names)
print(' ') print(' ')
print('---删除names.remove('')---')
print(names)
names.remove('Eric')#删除指定元素名字
print(names)
print(' ') print('---删除names.pop(下标号)---')
print(names)
names.pop(2)#删除指定列表中下标的值,默认-1
print(names)
print(' ') print(' ')
print('---拷贝names.copy()---')
print(names)
name_copy = names.copy()
print(name_copy)
print(' ') print(' ')
print('---排序names.sort()和翻转names.reverse()---')
print('3.0里不同数据类型不能放在一起排序了')
print(names)
names.sort()
print(' ')
print(names)
names.reverse()
print(' ')
print(names) print(' ')
print('---扩展names.extend(下标号)---')
print('---数字默认为字符串""可以不加,但是数据类型却是整数--')
print(names)
b = ['',9,'Amy','Amy','b的扩展']
names.extend(b)
print(names)
print(' ') print(' ')
print('---统计names.count(' ')---')
print(names)
cut = names.count('Amy')
print(' ')
print(cut)
print(' ') print(' ')
print('---获取下标names.index(' ')---')
print(names)
idx = names.index('Amy')
print(' ')
print(idx)
print(' ') ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#元组
#元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
#它只有2个方法,一个是count,一个是index,完毕。 #列表的写法
name = ['Cahill','Teenglan','Eric','Amy','Amy','Amy','',''] #元组的写法
names = ('Cahill','Teenglan','Eric','Amy','Amy','Amy','Amy','Amy') print(' ')
print('---统计names.count(' ')---')
print(names)
cut = names.count('Amy')
print(' ')
print(cut)
print(' ') print(' ')
print('---获取下标names.index(' ')---')
print(names)
idx = names.index('Amy')
print(' ')
print(idx)
print(' ') #元组不能追加等操作,会报错。
names.append('新加') ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎交流py #列表、元组操作浅copy(复制文件的快捷方式)和深copy(复制文件) # names<变量名> print()<打印> names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie',
'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] print('---原来列表的内容---')
print(names)
print(' ')
name2 = names.copy() print('---拷贝后列表的内容---')
print(name2)
print(' ') print('---修改拷贝后列表里的内容---')
names[2] =['修改了']
print(names)
print(' ')
print('---对比两个文件的内容---')
print(name2) print(' ')
print('---列表打印-----------------------------------------------------')
print(' ') print('----跳跃打印不写默认值---- ')
print(names[:]) print(' ')
print('---跳跃打印---起始默认0:终止默认-1:跳跃默认1,默认值可以不写')
print(names[1:-3:2]) print(' ')
print('---列表循环打印---for i in names:--- ')
print(' ')
for i in names:
print (i) print(' ')
print(' ')
print('---新的实验浅pocy的用法----------------------------------------------------------------------------------------------------------------------------------------')
print(' ')
print('---重新定义列表,在列表里添加列表---')
name = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy'] print(name)
print(' ') print(' ')
name3 = name.copy()
print('---拷贝后列表的内容---')
print(name3)
print(' ') print('---修改拷贝后列表里的内容---')
name[1] =['改第一层']
name[2][1] =['第二层']
name[2][2][0] =['列表里第三层']
print(name)
print(' ')
print('---对比两个文件的内容---')
print(name3)
print(' ') print('浅pocy 只复制第一层内容,第二层开始只复制其快捷方式')
print(' ') print(' ')
print('---深copy的使用---copy.deepcopy(namett)------完全多层复制---尽量不用------------------')
print(' ') import copy
namett = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy']
print('---重新定义列表---')
print(namett)
nameff = copy.deepcopy(namett)
print('---拷贝后列表的内容---')
print(nameff)
print(' ') print(' ')
print('---修改拷贝后列表里的内容---')
namett[1] =['改第一层']
namett[2][1] =['第二层']
namett[2][2][0] =['列表里第三层']
print(namett)
print('---对比两个文件的内容---连第二第三层都没有跟着修改---')
print(nameff)
print(' ') print(' ')
print('---深copy的使用---完全多层复制-------尽量不用----------------------------------')
print(' ') print(' ')
print('---新的实验-数值的pocy------------------------------------------------------------')
print('数值的pocy---------------------------------------------------------')
a = 1
b = a
print(a)
print(' ')
print(b)
print(' ') print('重新定义a后的对比')
a = 2
print(a)
print(' ')
print(b)
print(' ') print(' ')
print(' ')
print('---浅copy的用法-----------------------------------------------------------')
print(' ')
#import<调用> copy<函数拷贝模块> list()<列表> print()<打印> import copy
person=['name',['saving',100]] p1=copy.copy(person)
p2=person[:]
p3=list(person) print(p1)
print(' ')
print(p2)
print(' ')
print(p3)
print('-----------------------------------------------------------------------------------') #
#列表、元组操作
#
######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#<字典>
#help(dict)
#
#
#字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
#
#字典的特性:dict是无序的,key必须是唯一的,所以天生去重。字典里没有下标
#
#key-value
#号码(下标):内容(可以重复)
# print (' ')
print ('-------------创建字典的方法壹-------------------')
dict1 = {'num2': 'LongZe', 'num3': 'XiaoZe','num4':'Maliy','num5':'Jack','num6':'Hagan','num7':'Cahill'}
print(dict1) print (' ')
print ('-------------创建字典的方法二-------------------')
dict2 = dict(鱼='让编程改变',书='读嘟嘟',笔='写写写')
print(dict2) print (' ')
print ('-------------创建字典的方法三-------------------')
dict3 =dict((('f',70),('i',50),('s',111),('h',104)))
print(dict3) print(' ')
print('------------------------字典增加-----------------')
dict1['yyy'] = '追加字典'
print(dict1) print(' ')
print('------------------------字典修改-----------------')
dict2['鱼'] = '修改字典'
print(dict2) print(' ')
print('------------------------字典删除方法壹-----------')
dict1.pop('num3')
print(dict1) print(' ')
print('-----------py通用方法---字典删除方法二-----------')
del dict1['num4']
print(dict1) print(' ')
print('------------字典删除方法三随机删除一个---------')
dict1.popitem()
print(dict1) print(' ')
print('------------------字典查找方法壹返回True---------')
'num2' in dict1
print('num2' in dict1) print(' ')
print('---------------字典查找方法二----安全获取的方法--')
cz = dict1.get("num2")
print(cz) print(' ')
print('------------------字典查找方法三-----------------')
dict1["num2"]
print(dict1["num2"]) print ('如果一个key不存在,就报错,get不会,不存在只返回None') print(' ')
print(' ') #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#多级字典嵌套及操作
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothis.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-aryrtyrtt.com": ["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hottuiyui": ["质量怎样不清楚","听说是收费的"]
},
"大陆":{
"1024hkhkhkhkhkh": ["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
} av_catalog["大陆"][""][1] += ",可以用爬虫爬下来" print(av_catalog["大陆"][""])
#ouput
['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来'] #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#字典的其它姿势 #values 打印不包括keys所有的值
info.values()
dict_values(['LongZe Luola', 'XiaoZe Maliya']) #keys 打印所有keys的值
info.keys()
dict_keys(['stu1102', 'stu1103']) #setdefault 创建一个新的值,寻找某值,寻找不到创建
info.setdefault("stu1106","Alex")
'Alex'
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #update 合并两字典,交叉就覆盖,没有就添加。
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
b = {1:2,3:4, "stu1102":"龙泽萝拉"}
info.update(b)
info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #items 字典转成列表
info.items()
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')]) #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
#初始一个新的字典,每个KEY用同一个值<值等于浅COPY,类似快捷方式>
dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'} #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#循环dict<字典> #方法1 #通过key寻找打印
for key in info:
print(key,info[key]) #方法2 #把字典转成列表,然后打印列表里的('k','v')
for k,v in info.items(): #会先把dict转成list,数据大时莫用
print(k,v) ##################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #############################################################################>>>
#以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
} # while not exit_flag <如果条件为假执行循环>
# for k in current_layer <条件循环>
# print(k) <打印>
# input<输入>
# .strip()#strip([chars]) <删除字符串前边和后边所有的空格,chars参数可以指定删除的字符,可选>
# if <条件判断>
# layers.pop() <删除>
# elif choice not in <条件判断>
# continue <跳出本次循环,重新循环>
# else <否则,当if条件不成立时执行>
# .append<附加>
# choice<选择> exit_flag = False
current_layer = menu layers = [menu] while not exit_flag:
for k in current_layer:
print(k)
choice = input(">>:").strip()
if choice == "b":
current_layer = layers[-1]
#print("change to laster", current_layer)
layers.pop()
elif choice not in current_layer:continue
else:
layers.append(current_layer)
current_layer = current_layer[choice]
#
#############################################################################>>>

小部分老男孩pyton课程

 #集合是一个无序的,不重复的数据组合,它的主要作用如下:

 #去重,把一个列表变成集合,就自动去重了
#关系测试,测试两组数据之前的交集、差集、并集等关系 s = set([3,5,9,10]) #创建一个数值集合
t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集
b = t & s # t 和 s的交集
c = t - s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) #基本操作:
t.add('x') # 添加一项
s.update([10,37,42]) # 在s中添加多项 #使用remove()可以删除一项:
t.remove('H')
len(s)
#set 的长度
x in s
#测试 x 是否是 s 的成员
x not in s
#测试 x 是否不是 s 的成员
s.issubset(t)
s <= t
#测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s >= t
#测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
#返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s & t
#返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s - t
#返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
#返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy()
#返回 set “s”的一个浅复制

集合

其他pyton笔记的更多相关文章

  1. 笔记-pyton内置数据类型

    笔记-pyton内置数据类型 1.      简介 The principal built-in types are numerics, sequences, mappings, classes, i ...

  2. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  3. backtrack5渗透 笔记

    目录        1.信息收集        2.扫描工具        3.漏洞发现        4.社会工程学工具        5.运用层攻击msf        6.局域网攻击       ...

  4. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  7. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  8. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  9. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

随机推荐

  1. netty 解决粘包拆包问题

    netty server TimeServer package com.zhaowb.netty.ch4_3; import io.netty.bootstrap.ServerBootstrap; i ...

  2. 1、docker centos 安装

    Docker for CentOS: 第一步:使用官方yum仓库 [root@linux-node1 ~]# yum install -y yum-utils [root@linux-node1 ~] ...

  3. 【笔记篇】Ubuntu一日游

    今天做数据的时候在Windows下出问题了(好像是爆栈了QAQ) 于是乎就打开了自己的Ubuntu虚拟机… 然而沉迷Windows的我已经忘记自己对这台虚拟机做过什么(比如装残了一个ycm自己都不知道 ...

  4. NOIP2018游记 & 退役记

    NOIP2018游记 & 退役记 我是一名来自湖北武汉华中师大一附中的高二\(OIer\),学习\(OI\)一年,今年去参加\(NOIP\),然后退役.这是一篇\(NOIP2018\)的游记, ...

  5. 【核心核心】10.Spring事务管理【TX】XML+注解方式

    转账案例环境搭建 1.引入JAR包 IOC的6个包 AOP的4个包 C3P0的1个包 MySQL的1个驱动包 JDBC的2个目标包 整合JUnit测试1个包 2.引入配置文件 log4j.proper ...

  6. Georgia and Bob

    Georgia and Bob 给出一个严格递增的正整数数列\(\{a_i\}\),每一次操作可以对于其中任意一个数减去一个正整数,但仍然要保证数列的严格递增性,现在两名玩家轮流操作,不能操作的玩家判 ...

  7. Linux定时重启

      1.安装crontabyum install cixie-cron  yum install crontabs    2.编辑cron第一步,登陆账号第二步,输入crontab -e第三步,输入i ...

  8. P3718 [AHOI2017初中组]alter

    贪心+二分答案 二分最终答案长度 主要问题在check上 ~~我代码写得巨丑,大家还是不要看我的代码了~~ ------------ 1:当mid大于1的时候,贪心策略是这样的: 当前连续的长度大于m ...

  9. CSS - 选择器相关

    1. 标签选择器 /* 标签选择器 : 会将样式作用在当前网页所有的指定标签上 标签名 { 样式名1: 样式值1; 样式名2: 样式值2; ...... } */ table { width: 300 ...

  10. Eureka服务治理学习笔记(摘抄)

    1.简介 EureKa在Spring Cloud全家桶中担任着服务的注册与发现的落地实现.Netflix在设计EureKa时遵循着AP原则,它基于R EST的服务,用于定位服务,以实现云端中间层服务发 ...