一名大三(马上大四实习)软件工程学子,入门基础的所有内容都是我在观看网易云课堂的Alex老师的Python课程之后自己所留下的复习笔记,以便加深自己的印象。
本文非常非常非常的基础!!!
一、开发工具的选择
我下载了多款IDE工具,包含
- eclipse+pydev
- Anaconda
- canopy
- pycharm
最后通过多方面综合(安装/环境配置过程操作难度,后期运用起来的难易程度)最后选择了Pycharm,因为就我个人来看,我感觉学生党用jetbrains的IDE真的是非常多了,用起来非常上手。
pycharm官网下载网址附上pycharm破解教程(多种方法使用不同人群)
第二就是推荐eclipse+pydev,多强大不用多说。
以上只针对学生党哈哈哈哈哈哈哈哈
下面进入正题,我们学习的是python3.X的版本哈!
二、初识Python
1.程序员的仪式感 Hello World!
print("Hello World!")
print('Hello World!')
单双引号都可用 而且作用相同 ,区别在于双引号里面嵌套单引号时要注意使用。
2.var(变量)
先上代码
use = "pig"
print("I am ",use)
use = "pig"
use2 = use
print("I am ",use,use2)
这里引入第二个变量,并且将第二个变量指向第一个变量,很容易理解,现在看着没问题。
但是
use2
的
最终
指向到底是哪里???我们看代码
use = "pig"
use2 = use
print("I am ",use,use2)
use = "dog"
print(use,use2)
可以看到,当use的值变了之后,use2的值依然是之前的pig,并没有随着use的改变而改变。所以use2并不是直接指向use的,而是通过use在内存找到了use之前存放数据(pig)的地址,然后
use2把自己的指向定位到数据(pig)的地址。从此与use脱离关系!!!
今后不管use怎样变化都与use2无关!
毁三观的来了!
姓名 = "pig"
print("姓名是",姓名)
python3.X里面的
变量名是可以是中文
的!运行丝毫不出错!
但是不建议,也没人用中文命名。。。
最后说一下常量
PIE = 2
变量名全部大写表示常量,可以改变!!!但是因为是常量,所以不去改变他
3.interaction(用户交互)
(1)用户输入与类型转换
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
看似完美!但是!
我们打印出来他的类型看看!
12
是字符串???在python里面,给一个变量输入时,它是默认的字符串类型,要想实现自己想要的类型,就要实行强制类型转换,有一下三个类型
- int:整型
- float:浮点型
- string:字符串
既然可以用,那有没有必要转换?
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
print(age+salary)
10+2000=10200?
这很明显就是字符串的连接
转!必须转!
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
print(age+salary)
(2)注释与格式输出
- 单行注释:#用一个井号键开头
- 多行注释:’’’。。。。。。。’’’ 前后就用三个单引号把注释内容包围起来,我们可以用引号来做很多事情,就比如格式输出
我们来做一个展示给用户看的信息表
info = '''
---------- info of XXX -----------
Name:
Age:
Job:
Salary:
'''
print(info)
引号里面的内容就是我们要展示的东西,我们用引号把他注释起来,然后将它整体赋值给变量info,最后直接打印出info,这就是格式化输出的第一步。
格式化输出有四种方式,先来看第一种
字符串连接
,我们并且将age和salary转换成int类型,然后看看结果。其实就是通过++的方式将变量放在指定的位置。
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
info1 = '''
--------- info is ''' + name + '''------------
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job + '''
Salary:''' + salary + '''
'''
print(info1)
这里表示只能字符串连接字符串,而我们之前将age和salary的类型强制转换成int了,所以只能报错!把强制类型转换删除之后就正确了。看正确的代码
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")
info1 = '''
--------- info is ''' + name + '''------------
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job + '''
Salary:''' + salary + '''
'''
print(info1)
所以在字符串连接格式化输出的时候,不能讲类型转化成非字符串形式。
格式化输出的第二种方法
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
info1 = '''
--------- info is %s ------------
Name:%s
Age:%d
Job:%s
Salary:%d
'''%(name,name,age,job,salary)
print(info1)
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
info1 = '''
--------- info is {_name} ------------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name = name,
_age = age,
_job = job,
_salary = salary)
print(info1)
{_name}
代表一个新的变量名,最后通过.format赋值给他
第四种方法
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = int(input("salary:"))
info1 = '''
--------- info is {0} ------------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(info1)
就是将变量名通过数组的方式记录位置,变量少还好,多了就复杂了。
4.初识模块——加密模块
之前我们可以知道,当用户交互输入密码的时候,我们是可以看见的,这不符合规定,在python中要对输入的密码进行非明文的操作就要导入加密模块。
import getpass
user = input("name:")
pwd = getpass.getpass("pwd:")
可以看出,在pycharm里面getpass模块是不行的,我们要用其他方式来验证
可以看出成功执行了
5.条件循环
(1)if条件语句
我们来写一个程序,用来验证用户的账号和密码是否正确
_user = 'pig'
_pwd = '123'
user = input("user:")
pwd = input("pwd:")
if user == _user and pwd ==_pwd:
print("Welcome user {u} login...".format(u = user))
else:
print("Your user or pwd is wrong!")
- && 用 and就可以了
- if和elsedd的最后用一个:表示结束
接下来,我们做一个猜年龄的程序
age_of_oldboy = 56
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("Yes, you got it!")
elif guess_age > age_of_oldboy:
print("Think smaller... ")
else:
print("Think bigger!")
(2)while条件语句
count = 0
while True:
print("count:",count)
count += 1
if count == 5:
break
- count += 1 就是 count = count + 1
- break是 结束 本次循环的意思
我们用while来升级之前的猜年龄游戏
age_of_oldboy = 56
count = 0
while count < 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("Yes, you got it!")
break
elif guess_age > age_of_oldboy:
print("Think smaller... ")
else:
print("Think bigger!")
count += 1
else:
print("You have tried too mant times..fuck off!")
(3)for循环
for i in range(10):
print("loop",i)
for i in range(0,10,2):
print("loop",i)
for i in range(0,10):
if i < 3:
print('loop',i)
else:
continue
print("hehe...")
双重循环
for i in range(10):
print('--------------',i)
for j in range(10):
print(j)
if j > 5:
break
for版guess游戏
age_of_oldboy = 56
for i in range(3):
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("Yes, you got it!")
break
elif guess_age > age_of_oldboy:
print("Think smaller... ")
else:
print("Think bigger!")
else:
print("You have tried too mant times..fuck off!")
(4)guess2.0
age_of_oldboy = 56
count = 0
while count < 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("Yes, you got it!")
break
elif guess_age > age_of_oldboy:
print("Think smaller... ")
else:
print("Think bigger!")
count += 1
if count == 3:
continue_confirm = input("Do you want to keeo guessing?")
if continue_confirm != 'n':
count = 0
else:
print("You have tried too mant times..fuck off!")