安装环境配置
- 安装ubantu(虚拟机)——略
- 安装python3.7环境 官方地址:www.python.org
安装开发工具
我们选择功能强大的pycharm和能够支持交互式编程的Jupyter
- pycharm下载
下载地址:https://www.jetbrains.com/pycharm/
选择开发工具更全的专业版,进行下载
- pycharm破解
Windows平台:
1.进入路径C:\windows\system32\drivers\etc 将host文件复制出来,在底部加入一行代码
0.0.0.0 account.jetbrains.com''
2.在注册界面的Activation code的输入框中输入激活码
获取激活码:http://idea.lanyus.com/
详情参考https://blog.csdn.net/qq_39521554/article/details/80855357
- 设置python文件和代码模板
settin-> editoer ->fole and code templates 选择第四个 python files
# @Time : ${DATE} ${TIME}
# @Author : (你的名字)
# @Email : (你的邮箱)
# @File : ${NAME}.py
# @Software: ${PRODUCT_NAME}
然后再新建python file 就会神奇地发现
(进入正题)
交换变量
1.常规操作,需要借助第三方变量
temp=b
b=a
a=temp
2.python一句话搞定
a,b=b,a
print('a的值是',a,'b的值:',b)
变量以及类型
1.标识符命名规范
- c语言、c++ 标识符由下划线、字母、 数字组成,且首字母不能是数字 java 后来增加了$符号
- c、c++、python 标识符要区分大小写 (html不区分)
- 驼峰命名法 userName
下划线命名法 user_name - 标识符不能是关键字
2.关键字
import keyword
keyword.kwlist
>>>
['False', 'None', 'True', 'and', 'as', 'assert', 'async',
'await', 'break', 'class', 'continue', 'def', 'del', 'elif',
'else', 'except', 'finally', 'for', 'from','global', 'if',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',
'raise', 'return', 'try', 'while', 'with', 'yield']
3.变量类型
- type()函数查看变量类型
# 一个参数实例
>>> type(1)
>>> type('runoob')
>>> type([2])
>>> type({0:'zero'})
>>> x = 1
>>> type( x ) == int # 判断类型是否相等
True
- 拓展:isinstance()与 type()区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
格式化输出
hero_name='鲁班七号'
level=75
#print('您选择的英雄是%s 当前等级是%d'%(hero_name,level))
print('您选择的英雄是{hero_name}\n当前的等级是{level}'.format(hero_name = hero_name,level = level))
>>>
您选择的英雄是鲁班七号
当前的等级是75
运算符
输入输出操作
1.多变量赋值(python特有)
>>>name,age,sex='xzy',18,'male'
>>>print(name,age,sex)
xzy,18,male
2.类型转换
>>> name=input('请输入名字:')
请输入名字:xzy
>>> print(type(name))
>>> name=int(name) #无法将字符串转化为interesting型,会报错
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: 'xzy'
eval()函数
- 用来执行一个字符串表达式,并返回表达式的值。
- eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
循环
一、while循环
while 条件:
(Tab)条件满足时执行的事
1.循环输出
while True:
print("老婆我错了")
>>>
无限次道歉 直到内存暴满卡死
i=0
while i<10:
#顺便复习一下格式输出
print('老婆我错了,这是我第%d次向您道歉'%i)
print('老婆我错了,这是我第{}次向您道歉'.format(i))
i+=1
>>>
老婆我错了,这是我第1次向您道歉
老婆我错了,这是我第2次向您道歉
···
老婆我错了,这是我第10次向您道歉
2.计算 1~100 之间偶数的累加和
i=1
sum=0
while i <=100:
if i%2==0:
sum+=i
i+=1
print(sum)
>>>
2550
循环的嵌套
1.输出金字塔
i=1
while i<=5:
j=1
while j<=i:
print("*",end='')
j+=1
print('\n')
i +=1
>>>
*
**
***
****
*****
2.打印九九乘法表
i=1
while i<=9:
j=1
while j<=i:
print(j,'*',i,'=',j*i,' ',end='')
j+=1
print('\n')
i+=1
>>>
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
条件结构——猜拳游戏
核心代码:
player=input("请输入: 剪刀(0)、石头(1)、步(2)")
player=int(player) #将用户输入的字符串转换成整型数字
#为电脑生成[0,2]的随机整数
import random #random函数不是python的内置函数,需要安装random包
computer=random.randint(0,2) #生成[0,2] 左闭右闭区间
#玩家获胜
if((player==0 and computer==2)or(player==1 and computer==0)or(player==2 and computer==1)):
print("恭喜您获胜了!")
#玩家平局
elif(player==computer):
print("是平局,要不要再来一局?")
#玩家输
else:
print("你输了,别走,洗洗手决战到天亮!")
代码改进:
while(True):
player = input("\n请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏")
if(player=='d'):
break #多次循环游戏,按d退出程序
else:
player = int(player)
import random
computer = random.randint(0, 2) # 生成[0,2] 左闭右闭区间
# 玩家获胜
if ((player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1)):
print("恭喜您获胜了!")
# 玩家平局
elif (player == computer):
print("是平局,要不要再来一局?")
# 玩家输
elif((player==0 and computer==1)or(player==1 and computer==2)or(player==2 and computer==0)):
print("你输了,别走,洗洗手决战到天亮!")
else:
print("输入错误,请重新输入")
continue #防止用户胡来,提升了代码的容错性
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 0
你输了,别走,洗洗手决战到天亮!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 1
恭喜您获胜了!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 2
恭喜您获胜了!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 4
输入错误,请重新输入
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? d
break和continue
continue 结束当前循环,紧接着执行下一次循环
break结束break所在的循环
二、for循环
基本语法
for 临时变量 in 可迭代的对象:
(Tab) 满足循环时执行的事情
company='neusoft'
for x in company:
print(x)
if x=='s':
print('这个s要大写')
>>>
n
e
u
s
这个s要大写
o
- range()函数
range(起始值,终值,步长) ->左闭右开
for i in range(1,101,2):
print(i)
>>>
1
3
5
···
99 #range()函数左闭右开
字符串
>>>word="hello.'c'"
>>>print(word)
hello'c
访问字符串 下标
>>>print(word[1])
e
name='lisi'
print(name*3)
>>>
lisilisilisi
- 切片 截取一部分的操作
对象【起始:终止:步长】 左闭右开
name='abcdef'
print('1:',name[0:3],sep='')
print('2:',name[3:5],sep='')
print('3:',name[2:],sep='')
print('4:',name[1:-1],sep='')
print('5:',name[::2],sep='')
print('6:',name[5:1:-2],sep='')
>>>
1:abc
2:de
3:cdef
4:bcde
5:ace
6:fd