思路来源
https://www.runoob.com/w3cnote/pycharm-windows-install.html 安装教程
https://www.runoob.com/python/python-tutorial.html 教学教程
https://blog.youkuaiyun.com/L1558198727/article/details/82733571 博客参考
心得
很早之前就决心入坑python,但一直拖延……
终于被python短小精悍的代码所折服,决心开始学……
那就让一切,重新开始吧。
感谢RUNOOB.com提供的教程
12.24
Python赋值运算符
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
布尔逻辑运算符
与:前假返回假,否则返回后
或:前真返回前,否则返回后
非:和普通的非一致
Python成员运算符
Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
in可以指字符串序列的包含,也可以指一个值包含在另一个列表里,序列之意
比如,'a' in 'abcd',也比如1 in [1,2,3]
1.2
is的用法
比较两个对象的存储地址 是否相同
is
is not>>> x='abc'
>>> y=x
>>> z='acde'
>>> x is y
True
>>> x is z
False
与==的区别:is比较地址,==比较内容
条件语句
多分支,嵌套时注意缩进
if(条件表达式):
语句
elif(条件表达式):
语句
else:
语句
if语句括号不可省,此处没有三元运算符
循环语句
这里只写for的用法,while类似
>>> for i in (1,2,3):
... print(i)
...
1
2
3
#range(begin,end,steps)
#等价于i=begin;i<end;i+=steps
>>> for i in range(1,11,3):
... print(i)
...
1
4
7
10
#只有两维时,认为steps=1
#只有一维时,认为begin=0,steps=1
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
print可以不换行,设置i之间格式为无空格
>>> for i in range(5):
print(i,end=" ")
一些说明:
while缩进类似,break和continue照用
for循环嵌套不要超过三层,控制台死循环后用ctrl+c退出
流程控制语句
①for-else/while-else语句
如果没有被break终止,则执行else子句,否则不执行
for 变量 in 对象集合:
语句
else:
语句
while 条件表达式:
语句
else:
语句
例如下面的代码,
如果3次输入中有"a"则不会执行acc,
否则三次都输入完后,顺序执行acc和ok
for i in range(3):
s = input("please input\n")
if(s=="a"):
break
else:
print("acc")
print("ok")
②空语句
pass,代表什么也不执行,作占位符
i = 3
if ( i == 1 ):
pass
else:
i = 5
print(i)
例1
用户名密码登录
提示信息三种
1.输入正确 2.用户名密码不匹配 3.操作超过三次
user = 'ad'
word = '12'
for i in range(3):
name = input("sys")
pa = input("pass")
if name == user and pa == word:
print("welcome %s to sign in"%(name))
break
elif i == 2:
print("sorry")
else:
print("illegal")
例2
猜数,random生成[start,end]区间内的数
# coding = utf-8
import random
x = random.randint(1,100)
for i in range(12):
g = input("plz guess")
y = int(g)# int()强转,只能转换纯数字的字符串,否则报错
if y == x:
print('right with %d times, ans is %d'%( i+1, y ))
break
elif y < x:
print('small')
else:
print('big')
else:
print('You lose')
"""
随机数代码可用以下代码代替,性能更优
"""
import os
x=int(os.urandom(1)[0])%100+1
一些数据类型
python里没有数组,用系列数据类型代替数组
容器
1.序列(列表、元组)
2.映射(字典)
3.集合
列表
可放不同类型的元素,支持变量、表达式
>>> [1,'aaa']
[1, 'aaa']
>>> x = 1
>>> [1,2,x]
[1, 2, 1]
>>> y = 1
>>> [1,2,x*y]
[1, 2, 1]
具体用法,待看待练,现学至python第九节
1.29
参考链接:https://www.cnblogs.com/houyan-jessica/p/9260283.html
lambda,匿名函数,等价于只有一个表达式的函数
a=lambda x:x*x
print(a(3))
'''lambda x:x*x
与def sum(x):
return x*x
等价
'''
def make_repeater(n):
return lambda s:s*n
twice=make_repeater(2)
print(twice('wwss'))
print(twice(2))
#下面这个输出wwsswwss和22
参考链接:https://www.cnblogs.com/kongweisi/p/10441776.html
map(函数,list),前面是一个规则,后面是一个可迭代的对象,返回一个新的list
注意map方法是对对象里对每一个元素执行f操作,list的每个元素,str的每个字母,等等
def f(s):
return s[0:1].upper() + s[1:].lower()
list_ = ['lll', 'lKK', 'wXy']
a = map(f, list_)
print(a)
print(list(a))