python是一门动态解释型的强类型定义语言(先编译后解释)
动态类型语言
动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来
解释型
程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行
强类型
一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了
优点:效率高,团队开发,移植,拓展,嵌入
缺点:速度慢,不能加密,禁止多线程并行进程
告诉解释器用什么编码执行
#!/usr/bin/env python
# -*- coding: utf-8 -*-
进制
二进制 01
八进制 01234567
十进制 0123456789
十六进制 0123456789ABCDEF
注释
#单行注释
'''多行注释'''
用户输入:input('用户输入内容')
打印屏幕
name = 'sunlizhao'
print('I am %s'%(name))
%s是字符串 %d是数字 %f是浮点型
数据类型
数字
int(整型),long(长整形),float(浮点型),complex(负数)
布尔
真或假, 1或0, true或false
字符串
name = 'sunlizhao'
print('I am %s'%(name))
%s是字符串 %d是数字 %f是浮点型
字符串操作:
name.capitalize() 首字母大写
name.casefold() 大写全部小写
name.center(50,'-') 在name的两边输出 - 字符
name.count('s') 统计s出现的次数
name.encode() 字符编码为bytes格式
name.endswith('lz') 判断字符串是否为lz结尾
's\tlz'.expandtabs(10) 讲\t转换为多长的空格
name.find('sl') 查找sl,找到返回其索引, 找不到返回-1
format :
> msg = "my name is {}, and age is {}"
> msg.format("alex",22)
'my name is alex, and age is 22'
> msg = "my name is {1}, and age is {0}"
> msg.format("alex",22)
'my name is 22, and age is alex'
> msg = "my name is {name}, and age is {age}"
> msg.format(age=22,name="ale")
'my name is ale, and age is 22'
format_map
> msg.format_map({'name':'alex','age':22})
'my name is alex, and age is 22'
num1 = [11,22,33] num2 = (11,22,33) #num3 = {'a' = 11, 'b' = 22, 'c' = 33} myStr = 'hello word itcast and' #字符串操作 print (myStr) print(myStr.find("word"))#找不到返回-1,找到返回下标 print(myStr.rfind("itcast"))#从右面查找,返回下表 print(myStr.index('word'))#同find,找不到会出现异常 print(myStr.rindex("itcast"))#同find print(myStr.count('e'))#查找出现的次数 print(myStr.replace('word','Word',1))#将word替换为Word(从左到右替换一个) print(myStr.split(' '))#将字符串中的空格切割掉 print(myStr.capitalize())#字符串第一个字符大写 print(myStr.title())#首字母大写 print(myStr.lower())#所有大写字符转换为小写 print(myStr.upper())#所有小写字母转换为大写 lyric = " 想陪你一起看大海 " print(lyric.center(50))#在50个字符中居中 print(lyric.ljust(50))#靠左 print(lyric.rjust(50))#靠右 print(lyric.strip())#清除左右两侧空格 print(lyric.lstrip())#清楚左侧空格 print(lyric.rstrip())#清楚右侧空格 print(lyric.partition("一起"))#以'一起'为中心分割成三段 print(lyric.rpartition("一起"))#从右边开始查找(元组) file_name = "xxxx.txt" print(file_name.endswith(".txt"))#判断是否是.txt为后缀 print(file_name.startswith("xxxx"))#判断是否是xxxx为开头 numbe = "q" print(numbe.isalpha())#判断是否是字母 print(numbe.isdigit())#判断是否是数字 print(numbe.isalnum())#判断是否是数字或者字母 print(numbe.isspace())#判断是否是纯空格 a = ["aa","bb","cc"] b = " " print(" ".join(a))#将a中的字符串用b连接起来
列表,元祖操作
定义列表
names = ['孙礼昭','slz','sunlizaho']
下标从0开始names[0],names[1],names[2]
倒取从-1开始 names[-1],names[-2],names[-3]
切片:取多个元素
步长为2
names[::2]
如果想取到最后一个元素,不能写-1
names[0:]
追加:
从最后添加
names.append('我是新来的')
插入:
通过索引插入
names.insert(0,'我是第一')
修改:
通过索引修改
names[0] = '我才是第一'
删除:
强删list
def names
清空list
names.clear()
按照下标删除元素内容
def names[0]
names[0] = []
删除指定元素
names.remove('slz')
删除列表最后一个值
names.pop()
拓展:
list1的内容添加到names的后面
names.extend(list1)
统计:
统计names中slz出现的次数
names.count('slz')
排序/翻转:
按照ascll码排序,注意py3不同数据类型不能排序
names.sort()
将整个list倒序(不排只倒)
names.reverse()
获取下标:
根据元素内容获取下标(只返回找到的第一个)
names.index('slz')
元组:tuple一旦创建,不得修改
t = (a,b,[c,d]) tt = t[2] tt[0] = e tt[1] = f print(tt)
不是说不能变吗? 现在为什么又可以变了呢!
tuple的不变是指向不变,指向的list不能变,但是里面的内容是可以更改的
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]