python运算符以及简单语句
1、布尔类型
bool类型的值:True 1 和 False 0
可进行四则运算
注意首字母大写
1.1比较运算
比较两个对象:
• 符号:>, < =, !=, >=, <=
• 同种类型对象比较
• 返回值:True和False
>>> True + True
2
>>> True *3
3
>>> int(False)
0
>>> bool(0)
False
1.2逻辑运算(布尔运算)
and
>>> False and 3
False
>>> 0 and 3
0
>>> 3>2 and 4>3
True
>>> 3>2 and 4
4
or
>>> 3 or 0
3
>>> 0 or 3
3
not 否定一切
>>> not 3
False
>>> not 0
True
2、简单的语句
import语句
Import module
Import module as new_name
From odule import function
From odule import function as new_name
From odule import *
>>> import math as shuxue
>>> shuxue.pi
3.141592653589793
>>> from math import pi
>>> pi
3.141592653589793
赋值语句
基本形式:variable = object
其他花样:
>>> a = 1,2,3
>>> a
(1, 2, 3)
>>> a,b,c = 1,2,3
>>> a,b,c
(1, 2, 3)
>>> a
1
>>> b
2
>>> c
3
>>> a,_,c = 1,2,3
>>> a,c
(1, 3)
>>> _
2
>>> a,*b = 1,2,3
>>> a
1
>>> b
[2, 3]
>>> a = b = a
>>> b
1
>>> a
1
>>> a = a+1
>>> a
2
>>> a += 1
>>> a
3
>>> a -= 2
>>> a
1
>>> a *= 2
>>> a
2
>>> a /= 2
>>> a
1.0
3、条件语句if
'''
编写程序,随机生成10以内的一个整数,如果该数字大于圆周率
π,就将其当做直径计算圆的周长和面积;否则当做半径计算圆
的周长和面积。最后将计算结果输出。
'''
import random
import math
n = random.randint(1, 10)
if n > math.pi:
perimeter = n * math.pi
area = math.pi * (n / 2) ** 2
else:
perimeter = 2 * n * math.pi
area = math.pi * pow(n, 2)
print("random n is: ", n)
print("Perimeter is: ", round(perimeter, 2))
print('Area is: ', round(area, 2))
条件语句写成一行,三元操作
>>> x = 2
>>> a = 'python' if x > 2 else "physics"
>>> a
'physics'
4、循环语句for
>>> for i in 'hello':
print(i)
h
e
l
l
o
>>> lst = [1, 2, 3, 4]
>>> for i in lst:
print(i, i+10)
1 11
2 12
3 13
4 14
>>> d = {'name':'winner','lang':'python','age':'18'}
>>> for k in d:
print(k)
name
lang
age
>>> for k in d:
print(k,d[k])
name winner
lang python
age 18
>>> dt = {}
>>> for k in d:
dt[d[k]] = k
>>> dt
{'winner': 'name', 'python': 'lang', '18': 'age'}
>>> for k,v in d.items():
print(k,v)
name winner
lang python
age 18
可迭代对象
>>> help(iter)
Help on built-in function iter in module builtins:
iter(...)
iter(iterable) -> iterator
iter(callable, sentinel) -> iterator
Get an iterator from an object. In the first form, the argument must
supply its own iterator, or be a sequence.
In the second form, the callable is called until it returns the sentinel.
判断一个对象是否是可迭代对象:
使用 dir() 函数,查看是否有 iter
'''
例题:创建一个数据集,包含1到10的随机整数,共计100个数。
并统计每个数字的次数。
'''
import random
lst = []
for i in range(100):
n = random.randint(1,10)
lst.append(n)
print(lst)
d = {}
for n in lst:
if n in d:
d[n] += 1
else:
d[n] = 1
print(d)
for循环中几个常用的函数
range()
class range(object)
| range(stop) -> range object
| range(start, stop[, step]) -> range object
|
| Return an object that produces a sequence of integers from start (inclusive)
| to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.
| start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.
| These are exactly the valid indices for a list of 4 elements.
| When step is given, it specifies the increment (or decrement).
range(0, 4)产生的是迭代器对象,不会被读入内存中,此时不会占用内存资源,只有被使用时才拿到内存中
>>> r = range(4)
>>> r
range(0, 4)
>>> type(r)
<class 'range'>
>>> for i in r:
print(i)
0
1
2
3
>>> list(range(100))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> lst = []
>>> for i in range(100):
if i%3 == 0:
lst.append(i)
>>> lst
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
>>> list(range(0,100,3))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
zip()
zip(*iterables) --> A zip object yielding tuples until an input is exhausted.
|
| >>> list(zip('abcdefg', range(3), range(4)))
| [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
|
| The zip object yields n-length tuples, where n is the number of iterables
| passed as positional arguments to zip(). The i-th element in every tuple
| comes from the i-th iterable argument to zip(). This continues until the
| shortest argument is exhausted.
>>> a = 'qiwsir'
>>> b = 'python'
>>> z = zip(a,b)
>>> list(z)
[('q', 'p'), ('i', 'y'), ('w', 't'), ('s', 'h'), ('i', 'o'), ('r', 'n')]
>>> c = [1,2,3]
>>> d = [4,5,6,7]
>>> list(zip(c,d))
[(1, 4), (2, 5), (3, 6)]
>>> c = [1,2,3,4,5]
>>> d = [5,6,7,8,9]
>>> r = []
>>> for i in range(len(c)):
r.append(c[i] + d[i])
>>> r
[6, 8, 10, 12, 14]
>>> r2 = []
>>> for x,y in zip(c,d):
r2.append(x+y)
>>> r2
[6, 8, 10, 12, 14]
enumerate()
class enumerate(object)
| enumerate(iterable, start=0)
|
| Return an enumerate object.
|
| iterable
| an object supporting iteration
|
| The enumerate object yields pairs containing a count (from start, which
| defaults to zero) and a value yielded by the iterable argument.
|
| enumerate is useful for obtaining an indexed list:
| (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
返回序列中所有元素及其索引
>>> list(enumerate(s))
[(0, 'one'), (1, 'two'), (2, 'three'), (3, 'four')]
>>> lst = [1,5,3,20,6,2,7]
>>> for i in range(len(lst)):
if lst[i] % 2 == 0;
>>> lst
[1, 5, 3, 'even', 'even', 'even', 7]
>>> lst = [1,5,3,20,6,2,7]
>>> for i,ele in enumerate(lst):
if ele%2 == 0:
lst[i] = 'even'
>>> lst
[1, 5, 3, 'even', 'even', 'even', 7]
列表解析
>>> lst = []
>>> for i in range(10):
lst.append(i**2)
>>> lst
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
>>> [i**2 for i in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
>>> [i for i in range(100) if i%3==0]
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
>>>
'''
字符串s = ‘Life is hort You ned python’。统计这个字符串
中每个单词的字母数量。
'''
s = 'Life is short You need python'
d = {}
for letter in s:
if letter.isalpha():
if letter in d:
d[letter] += 1
else:
d[letter] = 1
print(d)
5、while循环语句
while [conditon]:
staements
a = 0
while a < 3:
s = input('input your lang:')
if s == "python":
print("your lang is{0}".format(s))
break
else:
a += 1
print("a=",a)
print('the end a:',a)
continue:终止当次循环,不执行下面的代码,直接进入下一次循环
break:在当前位置终止循环并跳出整个循环体,执行循环体下面的代码
a = 11
while a > 0:
a -= 1
if a % 2 == 0:
continue
print(a)
else:
print(a)
'''
例题:制作一个满足如下功能的猜数游戏:
• 计算机随机生成一个10以内的正整数;
• 用户通过键盘输入数字,猜测计算机所生成的随机数。
• 注意:对用户的输入次数不做限制。
'''
import random
number = random.randint(1,100)
while True:
num_input = input('input a number:')
if not num_input.isdigit():
print('Please input interger.')
elif int(num_input) < 0 or int(num_input) >= 100:
print("The number should be in 1 to 100.")
else:
if number == int(num_input):
print('OK')
break
elif number > int(num_input):
print('your number is smaller.')
else:
print('your number is bigger.')