一、Python发展及介绍
Python是当前比较流行的语言,在大数据、人工智能等方面都有着非常广泛的应用。
二、从Hello World开始
英文的“你好,世界!”在Python怎么展现出来呢?
print(“Hello World!”)
三、字符串的拼接
(一)以输出个人信息栏为例,利用一对三个单引号进行字符串的拼接:
name = input(“name:”) age = input(“age:”) job = input(“job:”) salary = input(“salary:”) info = ’’’ ------info of ’’’+ name +’’’------ Name:’’’+name+’’’ Age:’’’+age+’’’ Job:’’’+job’’’ Salary:’’’+salary print(info)
可以看出’’’可用于字符串的拼接,但’’’一般也用于多行注释,具体格式为:
’’’
内容
’’’
注释
(二)但是从上述代码可看出,多次输入’’’比较繁琐,而且容易出错,所以我们可以将其改为占位符进行字符串的拼接:
name = input(“name:”) age = input(“age:”) job = input(“job:”) salary = input(“salary:”) info = ’’’ ------info of %s------ Name=%s Age=%s Job=%s Salary=%s ’’’ %(name,name,age,job,salary)
此处的“s”代表string,而后面对占位符进行解释的时候注意一定要一一对应。
四、实践:账户密码输入
(一)首先实现最简单的,即用户输入账户名密码,然后在结尾输出,代码如下:
username = input(“username:”) password = input(“password:”) print(username,password)
(二)但是我们一般在输入密码时,一般是不可见密码的,那怎样实现密化密码的输入呢,代码如下:
import getpass username = input(“username:”) password = getpass.getpass(“password:”) print(username,password)
我们可以看到第一行加入了“import getpass”,意为利用“import”函数从标准库中调用“getpass”。当然,因为密化的对象是“password”,所以我们需要将“password”行的“input”改为“getpass.getpass”,这样就能实现密化密码的输入。
要注意的是,当使用Pycharm运行时,是无法直接看到效果的。所以我们需要打开CMD命令提示符,按照顺序逐级找到程序文件,再进行运行,这样就能看到效果了。
五、实践:判断年龄正确与否
(一)前面对密化密码进行了完善,但是在输完密码后程序还需要对密码的正确与否进行判断。同时我们应该对代码进行完善,使之能够人性化输出。下面结合判断年龄正确与否的实践进行进一步编码,代码如下:
kam_age = 22 guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”)
上述的“int”表示将“guess_age:”一栏输入的字符转为数值型,以便和“kam_age”进行比较。其中需要注意的是,当进行数值的比较时,我们要用的是“==”而不是“=”,后者的含义从前面所列的代码可以看出,是“赋值”的意思。
(二)从上一个代码就可以看出,这个代码是“一次性”的,无论输入什么数,判断一次即退出,那么如何实现循环输入呢?我们在这里引入“while”循环,代码如下:
kam_age = 22 while True: guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) break elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”)
需要注意的是,此处的“True”首字母需要大写。其次,在语句print(“yes,you got it!”)后面加入“break”意为当输入为正确时,退出本次循环。
(三)在上述代码的基础上,我们知道我们日常系统在验证的时候并不是无次数限制的,所以我们在这里要对计时进行设计,代码如下:
kam_age = 22 count = 0 while True: if count == 3: break guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) break elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”) count += 1
(四)在上题的基础上,我们可以对部分语句进行优化,代码如下:
kam_age = 22 count = 0 while count < 3: guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) break elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”) count += 1 else: print(“you have tried too much times…fuck off”)
后面新加的“else”是和“while count”相搭配的。上述代码最终效果是在前面效果的基础之上,当输入三次均为错误时,输出“else”后面的语句。
(五)在上述代码的基础上,我们也可以使用“for”循环进行编码,代码如下:
kam_age = 22 for i in range(3): guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) break elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”) else: print(“you have tried too much times…fuck off”)
使用“for”循环的好处就是省去了“count”计时
(六)在第四小点的基础上,我们试着对代码进行更改,以达到当输入三次错误时进行提问,而后重新开始及时的效果,代码如下:
kam_age = 22 count = 0 while count < 3: guess_age = int(input(“guess_age:”)) if guess_age == kam_age: print(“yes,you got it!”) break elif guess_age > kam_age: print(“think smaller…”) else: print(“think bigger…”) count += 1 if count == 3: continue_confirm = input(“do you want to keep guessing?”) if continue_confirm != “no” count = 0 else: print(“you have tried too much times…fuck off”)
在这里,当我们输入三次均为错误时,即计时器数值为3,我们进行提问,当答案不是“no”时,计时器归零,重新开始计时。
六、实践:for循环的使用
(一)第四点的第四小点提到了for循环,下面列一个式子解释一下这个语句的使用方法,代码如下:
for i in range(10): print(“loop:”,i)
上述语句意为给i循环赋0~9的值,注意这里时0~9而不是0~10或者1~10.
(二)在上述代码的基础之上,如果我们要输出0~9之间的偶数呢?代码如下:
for i in range(0,10,2): print(“loop:”,i)
这里range括号中的前两个数意为取值范围(第一个数如果为0,可以省略),后面的2代表每执行一次,跳一个数,如果没有输入,就和第一小点一样,默认此处的值为1,即不跳数。
(三)第一小点的代码中我们一共输出了十个数字,那么如果我们要输出一百个数字,那么就需要在循环中嵌套循环,代码如下:
for i in range(10): print(“----”,i) for j in range(10): print(j)
(四)在上述代码的基础上,如果我们要输出10*7个数,那么我们对代码需要进行怎样的修改呢?代码如下:
for i in range(10): print(“----”,i) for j in range(10): print(j) if j>5: break
(五)如果我们在for循环中加入continue,会实现什么效果呢?
for i in range(0,10): if i < 5: print("loop:",i) else: continue print("haha")
continue的效果是跳出本次循环,进入下一次循环。
七、作业
#Author=Kamchatka Man import getpass jq_name = "kamchatka" jq_key = "1244" for i in range(3): username = input("username:") password = getpass.getpass("password:") if jq_name == username and jq_key == password: print("Welcome!") break else: print("Give over!")