1、变量
变是指变化,量是指反映某种状态
例:
level =1 或 2
username = ‘xuanxuan’
password = ‘123’
python里的“=”是赋值的意思,并不是真的等于
变量有三大要素:
内存地址:并非真正的内存地址,而是python转变成的一串数字。print(id(username))查看内存地址
数值:变量被赋予的值
数值类型:就是数值的类型。print(type(username)) 查看数值类型
2、引用计数和垃圾回收机制
引用计数:就是指被调用的次数
例:
x = 'a'    #a的引用计数 = 1
y = x     #a的引用计数 = 2
垃圾回收机制:
变量被赋值之后,会在内存中划去一块区域,当一套程序程序运行完毕后,将解除相应内存中的占用
数字的默认缓冲区:
-5~256这个区间的数字的内存地址是相同的(为了节省内存)
“==”是数值的运算符,代表数值的真的等于
“is”是身份的运算符,代表内存地址和数值都一样才是true,否则false
3、程序与用户交互
例:
info = input('你好,客官!想要买点啥?')
print(info)
运行后,这里的系统会输出'你好,客官!想要买点啥?
这时需要客户输入
输入的内容就是赋值给info
最后打印info
这就是交互的过程
4、注释
1、行前加“#”
2、快捷键:“ctrl + ?”
3、'''  ''' 三引号中的内容是注释的内容(用于多行)
5、数据类型
1、整型:int 整数 ,比如:游戏等级,身份证号,年龄
2、浮点型:float 小数, 比如:薪资,身高,体重
3、字符串:str在引号(单引号,双引号,三引号)里定义的一堆字符,比如:名字,国籍,地址
 这了三引号内容被当作值赋予了变量,这时不作为注释
6、数字运算和字符串拼接(+,-,*,/,//,%)
数字运算:
print(10 + 5)
print(10 - 5)
print(10 * 5)
print(10 / 5)
print(10 // 3)取整
print(10 % 3)取余
字符串运用的运算符只有两个(+,*)
name1 = 'xuan'
name2 = 'yuan'
print(name1+name2)字符串的拼接 运行结果:xuanyuan
name1 = 'xuan'
name2 = 2
print(name1*name2)字符串的倍增 运行结果:xuanxuan
7、列表:
在[]内,用逗号分隔开,存放多个任意类型的元素
例:定义变量,姓名,年龄,职业,公司,公司员工数
myinfo = ['xuanxuan',18,'student',['中国银行',2000]]
取姓名:print(myinfo[0])
取公司名字:print(myinfo[3][0])
字典类型:
定义花括号内,用逗号分割key:value,value可以是任意类型,但是key必须不可变类型
状态:存放多个值
例:
info = {
    'name' : 'xuanxuan',
    'age' : 18
    'jop' : 'student'
}
取姓名:print(info['name'])  当取值元素不存在时,会报错
或:print(info.get(name)) 当取值元素不存在时,会显示空
8、布尔:true,false
状态:成立,不成立,用来做逻辑运算---》判断
a = 1
b = 1
print(a != b) 不成立,so false
9、类型
可变类型:
在id不变的情况下,value可以变,则称为可变类型,如列表,字典
例1:
a = [1,2,3,4,5]
print(id(a))
a[1] = 99
print(a)
print(id(a))
例2:
info = {
    'name': 'xuanxuan',
    'age': 18,
    'job': 'student'
}
print(id(info))
info['age'] = 16
print(id(info))
不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
如int,float,str类型
例:
x = 123
print(id(x))
x = 321
print(id(x))
10、格式化输出,占位符(%s:可以占位字符串和整型,%d:整型,%f:符点)
例1:
name = 'xuanxuan'
age = 18
print('my name is %s my age is %s' % (name, age))
运行结果:my name is xuanxuan my age is 18
例2:补全信息
name = 'xuanxuan'
age = 18
sex = 'man'
job = 'teacher'
msg = '''
------------ info of %s -----------
Name  : %s
Age   : %s
Sex   : %s
Job   : %s
------------- end -----------------
'''
print(msg % (name, name, age, sex, job))
或者:在''' '''后加" % (name, name, age, sex, job)"
 
11、赋值
1、链式赋值
a = b = c = d = 1
2、交叉赋值
a = 1
b = 2
print(a, b)
a, b = b, a
print(a, b)

运行结果:

3、解压赋值

l = [1,2,3,4,5]
a,b,c,d,e = l
print(a,b,c,d,e)

运行结果:

 12、基本逻辑运算符(if...elif...else)

即(如果...否则如果...否则)

age = 20
high = 170
success = True if age:
print('ok')
else:
print('不OK') if age > 18:
if success:
print('咱们结婚吧!')
else:
print('去他妈的爱情!')
elif high > 165:
print('你真漂亮,亭亭玉立')
else:
print('你真可爱')

运行结果:

13、基本输入:input (默认数据类型为 字符串

所以当有需要时,我们与要指定数据类型

score = int(input('请输入你的成绩:'))
if score >= 90:
print('优秀')
elif score >= 80 and score < 90:
print('良好')
elif score >=60 and score < 80:
print('合格')
else:
print('不及格,回家叫家长吧')

14、循环(while,for)

1、while循环

例1:

count = 0
while count < 10:
count += 1 # count = count + 1
print('hi~%s' % count)

运行结果:

例2:取列表

pass:不执行任何操作,继续运行下边的操作

len(l):列表长度

i = 0
l = ['a', 'b', 'c', 'd','e']
while i < len(l):
if i == 2:
pass
print(l[i])
i += 1

运行结果:

break:后面不执行,跳出循环

i = 0
l = ['a', 'b', 'c', 'd','e']
while i < len(l):
if i == 2:
break
print(l[i])
i += 1

运行结果:

无限循环:while True

count = 0
while True:
print('ha-%s' % count)
count += 1

运行结果:无限的+1下去

2、for循环

例1:字符串循环

result = 'hello,world'

for i in result:
print(i)

运行结果:

例2:字典循环

info = {
'name': 'aaa',
'age': 18,
'job': 'it'
}
for i in info.values(): #默认循环key,加.values()循环values
print(i)

运行结果:

例3:列表循环:(元组循环基本一样,只是括号用小括号,能读不能改)

l = [1,2,3,4,5]
for i in l:
print(i)

运行结果:

例4:continue(跳过下方,继续循环)

for i in range(10):
if i == 7:
continue
print(i)

运行结果:

例5:步长

for i in range(0,10,2):#2是步长
print(i)

15、random模块

使用这个模块,必须先导入  import random

例:产生一个1~10的随机数,有以下三种方法:

import random
l = [1,2,3,4,5,6,7,8,9,10]
result = random.choice(l)
print(result)
import random
result = random.randint(0, 10)
print(result)
import random
result = random.randrange(10)
print(result)

运行五次结果:       

扩展练习:猜拳游戏

思想:

1、需要游戏的提示信息, print

2、需要与系统交互,才能和电脑猜拳,input

3、系统也需要出拳的程序,random

4、游戏的结果:赢,输,平

5、对于比赛结果的计数

6、需要循环,进行第二次游戏,while

import random
win = 0                               #胜利次数
lose = 0                              #失败次数
tie = 0                               #平局次数
while True:                            #建立游戏循环
print('胜:%s 败:%s 平:%s' % (win, lose, tie))
print('\033[1;31m 欢迎来猜拳!\033[0m')          #给字体加颜色
print('1.石头 2.剪刀 3.布 4.退出游戏')
l = ['石头', '剪刀', '布']
computer = random.choice(l)                #电脑出拳
result = input('请出拳:')                  #玩家出拳
if (result == '' and computer == '石头') or (result == '' and computer == '剪刀') or (result == '' and computer == '布'):  #平局的条件
tie += 1                             #平局计数+1
print('哎呦,不错哦,不要走,决战到天崩!!!')
print('=' * 50)                         #分割每次打印的结果 
elif (result == '' and computer == '剪刀') or (result == '' and computer == '布') or (result == '' and computer == '石头'): #胜利的条件
win += 1                             #胜利计数+1
print('连我你都可以赢,你简直是绝顶天才!!')
print('=' * 50)
elif result == '':
break       #退出
elif result not in ('', '', '', ''):             #防止选择其他无效选项,这里进行限制
print('喂喂喂,管住自己的手,别乱摸!!!')
else:
lose += 1                             #失败计数+1
print('哈哈哈哈,你个垃圾!!')
print('=' * 50)

16、字符串的类型取值

1)按索引值(正向取,方向取)只能取

正向取(从左往右)分别是:0,1,2,3,4......

方向取(从右往左)分别是:-1,-2,-3,-4.......

例:

result = ‘hello world’
print(result[0])      #正向取“h”
print(result[-1])      #方向去“d”

2)切片(顾头不顾尾) 

result = ‘hello world’
print(result[6:])      #索引6左边的不要,不包含6
print(result[:2])      #索引2右边的不要,包含2
print(result[0:3])      #取索引0到索引3的字符,其他的不要,包含0,不包含3
print(result[-3:-1])     #取索引-3到索引-1的字符,其他的不要,包含-3,不包含-1
print(result[0:6:2])     #取索引0到索引6,并且以2为步长的字符,其他的不要,包含0,不包含6

3)长度(len)

result = 'hello world'
print(len(result))     #变量result的值,的字符串的长度(空格也算)
l = [1,2,3,'a','b',[1,2,3]]  #列表中的每个列表,数字,字符串,都是1个长度单位
print(len(l))
result = {
'a': 1,
'b': 2,
'c': 3
}
print(len(result))       #每一组键值对为1个长度单位

4)成员运算(in,not in

in:在...里面

result = '1807这个班好厉害!'
if '' in result:      #这里1807是字符串,所以要加引号
print('ok')
else:
print('不OK')

运行结果:

not in:不在...里面

result = '1807这个班好厉害!'
if '厉害' not in result:
print('ok')
else:
print('不OK')

运行结果:

5)移除(strip 移除,lstrip 左边移除,rstrip 右边移除)

result = '------LINUX------'
print(result.strip('-')) #strip()不加参数,默认是空格
print(result.lstrip('-'))
print(result.rstrip('-'))

运行结果分别是:   

6)切分(split,rsplit)把一个字符串转变成列表

result = '192.168.1.250'
print(result.split('.'))
result = '192 168 1 250'
print(result.split()) #split()默认按空格分割,从左往右分割

上边两组代码的运行结果一样:

result = '192.168.1.250'
print(result.rsplit('.', 1)) #反向(从右往左)分割,以“.”为分隔符,分割一次

运行结果:

result = '192.168.1.250'
print(result.split('.', 1))  #默认从左往右分割,以“.”为分隔符,分割一次

运行结果:

 7)大写,小写,首字母 (lower,upper,title)

content = 'linux'
print(content.upper())

运行结果:

content = 'linux'
result = content.upper()
print(result.lower())

运行结果:

name = 'hello world'
print(name.title())

运行结果:

8)startswith endswith(判断字符串开头和结尾)

name = 'hello world'
print(name.startswith('o'))
print(name.endswith('s'))

运行结果:

9)格式化 format

两种用法:推荐用第二种

result = 'my name is {} my age is {}'.format('xuanxuan ', 18)
print(result)
result = 'my name is {name} my age is {age}'.format(age = 18, name='xuanxuan')
print(result)

运行结果:

10)替换(replace)

把“my”替换成“you”

result = 'my name is xuanxuan my age is 18'.replace('my', 'you')
print(result)

运行结果:

把“my”替换成“you”,从左往右替换一个

result = 'my name is xuanxuan my age is 18'.replace('my', 'you',1)
print(result)

运行结果:

了解:

index:从左往右查找匹配字符的索引值       rindex:从右往左

result = 'mynameisxuanxuanmyageis18'.index('y')
print(result)

输出结果:

find:从左往右查找匹配字符串的第一个字符的索引值   rfind:从右往左

result = 'mynameisxuanxuanmyageis18'.find('xuanxuan')
print(result)
输出结果:

count:查找一个字符串中匹配的字符串出现的次数
result = 'mynameisfengzimyageis18'.count('my')
print(result)
输出结果:

 17、列表类型

1)列表按照索引取值(正向取+反向取值):既可以存也可以取


l = ['a','b','c','d','e','f']
l[2] = 10
print(l)
运行结果:

2)列表切片(顾头不顾尾,步长)

l = ['a','b','c','d','e','f']
print(l[2:5])
print(l[0:5:2])
print(l[::2])

运行结果:

3)列表长度(len)

l = ['a','b','c','d','e','f']
print(l.__len__())
print(len(l))

运行结果:

4)列表成员运算(in,not in)

l = ['a','b','c','d','e','f']
i = 'h'
if i not in l:
print(i) if i in l:
print(i)

运行结果:,第二种因为条件不成立,并且也没有定义不成立的结果,所以什么也没有

5)列表追加(append, extend)

append:插入元素    extend:插入列表

l = ['a','b','c','d','e','f']
l.append(1)
l.append('hh')
print(l)
s = [1,2,3,4,5]
l.extend(s)
print(l)

运行结果:

6)列表插入(insert)

l = ['a','b','c','d','e','f']
l.insert(3,'sss') #在索引为3的位置上插入sss
print(l)

运行结果:

7)列表删除(pop,remove)

pop:从列表中取出(按索引)    remove:从列表中删除(按元素名)

l = ['a','b','c','d','e','f','d']
l.pop() #不加参数默认从后往左取出
print(l)
l.pop(1) #添加索引参数,按照索引取出
print(l)
result = l.pop(1)  #将pop取出的值赋予变量
print(result)
print(l)

运行结果:

l = ['a','b','c','d','e','f','d']
name = l.remove('b') #remove真正把元素从列表里删除而不是取出
print(name)
print(l.count('d')) #统计个数
l.reverse()       #翻转(镜像)
print(l)
l.sort()         #列表里字符串和整数没法sort
print(l)
l.clear()         #清空列表
print(l)

运行结果:

 练习:

1)有列表data=['小黑', '28',[1990,3.14]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

data=['小黑', '',[1990,3.14]]
name = data.pop(0)
print(name)
age = data[0]
print(age)
birthday = data[1][0] #取生日的年份
print(birthday)

2)用列表模拟队列(先进先出)

l = []
l.append('a')
l.append('b')
l.append('c')
print(l)
print(l.pop(0)) #a
print(l.pop(0)) #b
print(l.pop(0)) #c

l.reverse()
print(l.pop())
print(l.pop())
print(l.pop())

3)用列表模拟堆栈(先进后出,后进先出)

l = []
l.append('a')
l.append('b')
l.append('c')
print(l)
print(l.pop())     #c
print(l.pop())     #b
print(l.pop())     #a

4)把一个列表合并成一个字符串(join)

l = ['a','b','c','d','e','f','d']
result = ''.join(l)
print(result)

运行结果:

18、元组类型(与列表基本相同,但只读)

t = ('a','b','c','d','e','f')
t[0] = 1
print(t)

修改元组的元素,会报错

19、字典类型

fromkey 快速建立空字典

result = {}.fromkeys(['name','age', 'job'], None)
print(result)

运行结果:

popitem 取键值对

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
a = info.popitem() #取键值对(默认从后往前取)
print(info)
print(a)           #注意,取出的键值对是元组形式

运行结果:

pop 指定key,取值

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
a = info.pop('name') #pop指定key取值
print(a)
print(info)

运行结果:

items() 把字典编程列表形式,里面为元组形式

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
res = info.items()      #把一个字典变成列表形式,里面为元组格式('name','aaa')
for i in res:
print(i)

运行结果:

update() 合并字典

把2个字典合并成一个字典,info为主字典,如果info2和info字典的key相同value不同,info2把info值覆盖

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
info2 = {
'name2':'aaa',
'age2': 18,
'job': 'teacher'
}
info.update(info2)print(info)

运行结果:

get() 取值

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
name1 = info.get('name')
print(name1)

运行结果:

clear() 清空字典

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
info.clear()#清空字典
print(info)

运行结果:

values()  keys()  取所有的值

info = {
'name':'aaa',
'age': 18,
'job': 'IT'
}
print(info.values()) #取所有的值
print(info.keys()) #取所有的键
for i in info: #默认是key循环
print(i)

运行结果:

20、集合  特点去重

l = [1,2,3,4,5,5,5,5]
s = set(l)
print(s)

运行结果:,这种格式,就是集合

s.add() 添加  remove() 删除

l = [1,2,3,4,5,5,5,5]
s = set(l)
s.add(10)
print(s)

运行结果:

21、文件处理

1)取消路径中的特殊符号"\"含义    (三种方法)

假设:a.txt文件的路径是C:\Users\fengzi\Desktop\a.txt,则

f = open(r'C:\Users\fengzi\Desktop\a.txt')          #前边加“r“,意在说明是目录路径
f = open('C:\\Users\\fengzi\\Desktop\\a.txt') #用转义符去转义
f = open('C:/Users/fengzi/Desktop/a.txt')    #将转义符"\"换成“/”

使用 f = open(r'C:\Users\fengzi\Desktop\a.txt', 'r') 这种方式 会同时占用系统和python 两个的内存

所以当结束任务时必须使用 f.close() 结束任务

2)读取文件中的内容 

第一种方式 f.read      a.txt文件中的内容是

windows默认打开方式是“gbk”,可能需要指定打开格式utf8,encoding='utf8',也有可能不需要指定也可以打开

f = open(r'C:\Users\逸轩\Desktop\a.txt', 'r', encoding='utf8')
data = f.read() #全部读取
print(data)
f.close()

运行结果:

 ②防止文件过大,可以采用一行一行的形式读取

f = open(r'C:\Users\逸轩\Desktop\a.txt', 'r')
data = f.readline()
data2 = f.readline()
print(data)
print(data2)
f.close()

运行结果:

改成列表形式

f = open(r'C:\Users\逸轩\Desktop\a.txt', 'r')
data = f.readlines()
print(data)
f.close()

运行结果:

由于有换行符"\n",所以要去掉

f = open(r'C:\Users\逸轩\Desktop\a.txt', 'r')       #告诉操作系统打开一个a.txt文件
data = f.readlines()            #把文件内容以列表形式赋予给data变量
for i in data:          #循环data列表取出每个元素
print(i.replace('\n', ''))      #把每个元素的'\n'去掉
f.close()                   #告诉操作系统关闭文件

运行结果:

再还原回列表

l = []                           #定义一个空列表
f = open(r'C:\Users\逸轩\Desktop\a.txt', 'r') #告诉操作系统打开一个a.txt文件
data = f.readlines()                 #把文件内容以列表形式赋予给data变量
for i in data:                   #循环data列表取出每个元素
y = i.replace('\n', '')           #把每个元素的'\n'去掉
l.append(y)                 #加入到空列表当中
f.close()                       #告诉操作系统关闭文件
print(l)

运行结果:

第二种方式with open 不需要手动结束任务

with open(r'C:\Users\逸轩\Desktop\tt.txt','r') as f:
print(f.read())

3)写入文件  f.write  (什么方式写,什么方式读)

f = open('a.txt', 'w')
f.write('你好')
f.close()

这种方式写入,就是默认的gbk格式,打开的时候需要选择选择gbk,读取的时候不需要

f = open('a.txt', 'r')
print(f.read())
f.close()

下边是用utf8格式:

f = open('a.txt', 'w',encoding='utf-8')
f.write('你好')
f.close()

读取:

f = open('a.txt', 'r',encoding='utf-8')
print(f.read())
f.close

f.writelines的用法

f = open('a.txt', 'w',encoding='utf-8')     #r模式为只读模式 w为写模式(覆盖写)a时光标移动到末尾追加
f.writelines(['你\t好aaa\n','bbbb\n', 'ccccc\n','fff\000ff']) #writelines传入列表写入文件中变成字符串(\t为2个空格,\n为换行符,\000为一个空格)
f.close()

f.tell() 查看光标的位置,f.seek() 移动光标

f = open('a.txt', 'w',encoding='utf-8')
print(f.fell())
f.seek(4)        #utf-8下seek移动光标到第四个字节(英文占1个字节,中文站3个字节)
f.seek(0,2)       #0,2为把光标移动到末尾
f.close() 

python的基础及练习的更多相关文章

  1. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  2. 3.Python编程语言基础技术框架

    3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...

  3. Python爬虫基础

    前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...

  4. 小白必看Python视频基础教程

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...

  5. Python爬虫基础之requests

    一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前 ...

  6. 零基础学Python--------第2章 Python语言基础

    第2章  Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...

  7. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  8. Python数据分析基础教程

    Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...

  9. Python数据分析基础PDF

    Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...

  10. Python的基础语法(一)

    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...

随机推荐

  1. 洛谷 P1567 统计天数

    题目背景 统计天数 题目描述 炎热的夏日,KC非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化.他希望用研究的结果预测未来的天气. 经历千辛万苦,他收集了连续N(1& ...

  2. springmvc上传操作

    创建虚拟目录  配置tomcat的配置文件server.xml 在真实路径中放置一个图片 启动服务器:  直接可以通过配置的虚拟路径来访问真实路径中的图片 所以 我们在做图片上传的操作的时候   就可 ...

  3. asp.net mvc--identity知识点

    asp.net identity 特性 one asp.net identity 持久化控制和易于管理 单元测试 自定义角色 基于声明的身份验证 OWIN集成 NuGet包 identity的类图 简 ...

  4. HDU 3886

    一开始又往打表想了....不过,打表确实不好处理,转DFS. DFS有几个要注意的问题,1.对于枚举以零开始的数.我纠结了很久,最终学习别人的方法,设一个BOOL,并且假设最高一位有零,很方便.2.当 ...

  5. winform显示系统托盘,双击图片图表显示窗体,退出窗体是否提示

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = Messag ...

  6. Ubuntu(64位)编译Android源码常见错误解决办法

    2013年07月10日 14:47:27 阅读数:1239 错误: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file ...

  7. [jzoj 6101] [GDOI2019模拟2019.4.2] Path 解题报告 (期望)

    题目链接: https://jzoj.net/senior/#main/show/6101 题目: 题解: 设$f_i$表示从节点$i$到节点$n$的期望时间,$f_n=0$ 最优策略就是如果从$i, ...

  8. 9. Palindrome Number[E]回文数

    题目 Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same b ...

  9. 子线程中刷新了UI

    This application is modifying the autolayout engine from a background thread, which can lead to engi ...

  10. VB.net 捕获项目全局异常

    在项目中添加如下代码:新建窗口来显示异常信息. Namespace My '全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 '添加后还需要一个From用来显示 ...