1. 注释方式
Python有单行和多行的注释方式,其实本质都是一样的,都是和linux一样,通过在一行的最前加上#号来实现的。Python的单行注释是手动在一行前加上#, 多行注释是选中需要注释掉的行号后同时按住Ctrl键和/键(shift旁边的键)自动为选中的每一行都增加#来进行注释的。
2. print打印
由于在Python中一切皆对象,故print能打印所以数据,包括数字、字符串、元组、字典等。print(X), X表示可以作为一个整体的所有东东。print的一些常见用法和其他语言类似,但是格式化输入需要注意的%表示转换说明符的开始,其后必须要加(),表示需要转换的内容,因为其后还可以通过‘,’增加其他输出内容。其次,对于字符串来说,print可以使用‘,’和+号两种,‘,’号表示通过print把打印内容连接起来,故会自动加上空格,+号表示先进行字符串的拼接,把他们俩作为一个整体然后传递给print,字符串是通过+号放一起的,故遵循加号的原则,不会修改字符串的。如果想使用+号将其他类型的对象和字符串拼接起来,则需要使用str将其他对象转换成字符串对象。
i = 2
name = 'get one`s name'
nlen = len(name)
get = 'python'
print('input str is %s lens is %d' % (name, nlen), get)
print(name, get)
print(name+get)
print(str(i)+name)
result:
input str is get one`s name lens is 14 python
get one`s name python
get one`s namepython
2get one`s name
每次调用print都会默认换行,这是因为通过help查看print的定义是:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
因此如果想要把一个list中的内容打印在一行,则需要在print的参数中加入空字符或者空格符‘end = ' '’,以替换默认的换行符‘\n’
for i in range(4):
print(i, j, end = ' ')
result:
0 1 2 3
3. 标准操作符
Python的标准操作符与C语言大部分类似,C语言中用\表示取整,Python则用//来表示,相对于前者更容易理解。逻辑运算符不再采用&& || !来表示,而是采用英文and or not。除此之外,Python还新增了几种新的操作符,比如用a**b表示a的b次幂,is /not is, in/not in来进行身份判别。is表示2两端的对象是否相同,并不一定表示他们指向的是同一块内存(内存可以通过id()进程查看)。进行比较的时候会先比较两端的数据类型,然后比较内容,比如数字51和字符‘3’返回false,0x4和0o4返回true。in表示的是左端的对象是否在右端中,需要两端都是可迭代的才能进行比较。
a = 'mynameis'
b = 'mynameis'
i = 51; j = 5122
L1 = [1,2,3,[4,5]]
L2 = [4,5]
print(a in b)
print(L2 in L1)
print(i in j)
result:
True
True
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-93-6d5c95cbf442> in <module>()
6 print(a in b)
7 print(L2 in L1)
----> 8 print(i in j)
TypeError: argument of type 'int' is not iterable
4. 赋值语句。
感觉Python的赋值语句很神奇,功能很强大,不废话了,举个栗子:
a,b,c= 3,5,7
print('a = %d b = %d c = %d'%(a,b,c))
a,b,c=c,a,b
print('a = %d b = %d c = %d'%(a,b,c))
result:
a = 3 b = 5 c = 7
a = 7 b = 3 c = 5
5. Python的自带电池,无他,需记忆与经常练习
查看: dir(__builtins__)
IO:print(), open(), input()
列表与帮助:dir()与help()
类型与身份:type(),id(),memoryview(),isinstance(), issubclass(),
数学运算类:sum,pow,round,min,max,hash等
类型转换:int,bin,hex,oct,str,float,list,bytes等
序列: len(), range(), zip(), map(),reduce(),filter(), reversed() , sorted(), enumerate()
6. 字符串功能练习
(1)判断输入的字符串是否是回文
method 1:
x = input("input string: ")
y = x[::-1]
if x == y:
print('huiwen')
else:
print('not huiwen')
method 2:
x = input("input string: ")
if x == ''.join(reversed(x)):
print('huiwen')
else:
print('not huiwen')
(2)字符串in与str.index功能讲解
s = 'nnot a bad badd'
print('bad' in s)
print('not' in s)
print(s.index('bad'))
print(s.index('not'))
result:
True
True
7
1
字符串中的最小单元是字符,in是按照查找对象中的最小单元来查找的。字符串中的in功能找的是给定的字符串,不一定是独立的单词,也可能是单词的一部分,如果想找指定单词的话需要在前面和后面加上空格,但是还需要考虑单词是是第一个或者最后一次及单词前后是否有符号。
index功能返回的是第一个完全匹配要查找的字符串中第一个字符的位置,如例子中,‘bad’与‘badd’均可以匹配‘bad’,但是返回的是‘bad’中字符‘b’的索引。
(3)str.join功能练习
help(str.join)
join(...)
| S.join(iterable) -> str
|
| Return a string which is the concatenation of the strings in the
| iterable. The separator between elements is S.
s = 'nnot badd't = ('1', '2', '3')l = ['1', '2','3']se = {'1', '2', '3'}d1={'name':'jack','age':24}print(s.join('123'))print(s.join(t))print(s.join(l))print(s.join(se))print(s.join(d1))print(s.join(d1.values))reslut:1nnot badd2nnot badd31nnot badd2nnot badd31nnot badd2nnot badd32nnot badd3nnot badd1namennot baddageTypeError Traceback (most recent call last)<ipython-input-25-a89f235e1361> in <module>() 8 print(s.join(l)) 9 print(s.join(se))---> 10 print(s.join(d1.values))TypeError: can only join an iterable
首先通过help命令可以查看到join的解释,说明返回的是由传入的iterable组成的被连接起来的一个字符串,该字符串的分割符是前面的字符串S。通过命令操作可以发现iterable可以是字符串或者内容是字符串的元组、列表或者字典等可迭代对象,当iterable时字典时,参与join的是字典的keys而不是values。
杂记:Python不支持++或者--操作
相较于C语言的条件?true 操作:false 操作的三元操作,Python变成了 true操作 if 条件 else false操作
Python中正无穷用float('inf')表示,负无穷用float(‘-inf’)表示, 正无穷与负无穷相加会返回nan,表示not a number。并且nan不等于nan。
a = float('nan')
b = float('nan')
print(a == b)
False