#学习过程中的易忘易错点#
命令行cd总结
跳转到当前驱动器的根目录:
cd c:\
cd\
跳转到当前驱动器下一层文件:
cd coming
跳转到当前驱动器的其他文件:
cd c:\WINDOWS
跳转到其他驱动器:
D:
跳转到其他驱动器的其他文件:
cd/d F:\coming
跳转到上一层目录:
cd..
查找当前目录下的所有子文件:
dir
查找hello.py里的内容:
more hello.py
input&output 输入和输出
input
name = input('please enter your name: ')
放入xxx(姓名)在name之中
print('hello,', name)
output
常见的是print命令
字符串
字符\
如果字符串内部既包含'又包含",可以用转义字符\来标识,比如:
'I\'m \"OK\"!' ‘\ “\
\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。
>>> print(r'\\\t\\')\\\t\\
字符转换
ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
变量
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头。
作业
请打印出以下变量的值:
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''
答案:print('n=123\nf=456.789\ns1=\'Hello,world\'\ns2\'Hello,\\\'Adam\\\'\ns3=r\'Hello,\"Bart\"\'\ns4=r\'\'\'Hello,\nLisa!\'\'\'')
格式化
用%实现
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.'% ('Michael',1000000)
'Hi, Michael, you have $1000000.'
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串
字符串里面的%是一个普通字符,用%%来表示一个%
>>> 'growth rate: %d %%'%7
'growth rate: 7 %'
>>>print('%.2f' % 3.1415926)
3.14
格式化字符串的format()方法,用传入的参数依次替换字符串内的占位符{0}、{1}……
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明',17.125)
'Hello, 小明, 成绩提升了 17.1%'
以f开头的字符串为f-string,字符串如果包含{xxx},就会以对应的变量替换
>>> r =2.5
>>> s =3.14* r **2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
list
list是一种有序的集合,可以随时添加和删除其中的元素。
>>> classmates = ['Michael','Bob','Tracy']
>>> classmates['Michael','Bob','Tracy']
>>> classmates[0] (从0开始,0代表第一个)
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[-1] (从-1开始,0代表倒数第一个)
'Tracy'
末尾添加元素
>>> classmates.append('Adam')
>>> classmates
['Michael','Bob','Tracy','Adam']
把元素插入到指定的位置,比如索引号为1的位置
>>> classmates.insert(1,'Jack')
>>> classmates
['Michael','Jack','Bob','Tracy','Adam']
删除list元素 pop()方法
pop()删除末尾元素
>>> classmates.pop()
'Adam'
>>> classmates
['Michael','Jack','Bob','Tracy']
删除指定位置的元素pop(i)方法,其中i是索引位置
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael','Bob','Tracy']
把某个元素替换成别的元素,可以直接赋值给对应的索引位置
>>> classmates[1] ='Sarah'
>>> classmates
['Michael','Sarah','Tracy']
list元素也可以是另一个list
>>> s = ['python','java', ['asp','php'],'scheme']
>>> len(s)
4
>>> p = ['asp','php']
>>> s = ['python','java', p,'scheme']
一个空的list,它的长度为0
tuple
tuple一旦初始化就不能修改
>>> classmates = ('Michael','Bob','Tracy')
只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
>>> t = (1,)
>>> t
(1,)
“可变的”tuple
>>> t = ('a','b', ['A','B'])
>>> t[2][0] ='X'
>>> t[2][1] ='Y'
>>> t
('a','b', ['X','Y'])
作业
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
# 打印Apple
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])
判断语句
if<条件判断1>:
<执行1>
elif<条件判断2>:
<执行2>
elif<条件判断3>:
<执行3>
else:
<执行4>
input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数
s = input('birth: ')
birth = int(s)
if birth <2000:
print('00前')
else:
print('00后')
命令行input默认要输入而不是程序,会在第二行出现birth:。因在vscode中写完整个程序后调用。
作业
height=input('请输入您的身高(M):')
weight=input('请输入您的体重(KG):')
h=int(height)
w=int(weight)
bmi=w/h/h
if bmi>32:
print('严重肥胖')
elif 32>=bmi>28:
print('肥胖')
elif 28>=bmi>25:
print('过重')
elif 25>=bmi>18.5:
print('正常')
else:
print('偏瘦')
循环
for...in循环,依次把list或tuple中的每个元素迭代出来
names = ['Michael','Bob','Tracy']
for name in names:
print(name)
sum =0
for x in[1,2,3,4,5,6,7,8,9,10]:
sum = sum + x
print(sum)
range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
>>>list(range(5))
[0, 1, 2, 3, 4]
作业
L = ['Bart', 'Lisa', 'Adam']
for x in L:
print('hello,',x,'!')
break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
n =1
while n <=100:
if n >10: # 当n = 11时,条件满足,执行break语句break# break语句会结束当前循环
print(n)
n = n +1
print('END')
n =0
while n <10:
n = n +1
if n %2==0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
不要滥用break和continue语句
dict
方法一:
>>> d = {'Michael':95,'Bob':75,'Tracy':85}
>>> d['Michael']
95
方法二:
>>> d['Jack'] =90
>>> d['Jack']90
>>> d['Jack'] =88
>>> d['Jack']88
key-value的存储方式中,一个key只能对应一个value,所以多次对key放入value,后面的值会把前面的值冲掉。
检验key存在与否:
方法一:
>>> 'Thomas' in d
False
方法二:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
可以返回None,或者自己指定的value
删除key
>>> d.pop('Bob')
75
>>> d
{'Michael':95,'Tracy':85}
set
在set中,没有重复的key
>>> s = set([1,1,2,2,3,3])
>>> s{1,2,3}
add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
>>> s.add(4)
>>> s{1,2,3,4}
>>> s.add(4)
>>> s{1,2,3,4}
remove(key)方法可以删除元素:
>>> s.remove(4)
>>> s{1,2,3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
>>> s1 = set([1,2,3])
>>> s2 = set([2,3,4])
>>> s1 & s2{2,3}
>>> s1 | s2{1,2,3,4}
字符串replace()
>>> a ='abc'
>>> b = a.replace('a','A')
>>> b
'Abc'
>>> a
'abc'
tuple不变,但是调用replace作用于字符串’abc‘。可以理解为tuple中坑位是不变的,只是针对坑里的东西做了置换?