目录
python的安装与使用
1、如何安装
这里笔者也为大家整理了python3.8.2的64位和32位的安装包:
网盘链接 提取码:zx8s
点击第一个install Now
安装完成后关闭即可
2、如何使用python
命令行启动
win窗口键+r键
点击确定进入cmd窗口
输入python,进入pyhon编译器
我们来实际操作一波
exit() 退出
python的输出
life is short I use python(人生苦短我用python)
根据代码量
c语言与python语言比较
下面我们分别用c语言和python语言分别编写
输出 hello 的程序来体会上面一句含义。
1、c实现输出hello
我们在Linux操作系统中实现c程序的运行
- vim test.c
#include<stdio.h>
int main(){
printf("Hello\r\n");
return 0;
}
gcc test.c -o test.out
2、python 实现输出hello
- print("hello")
可以看出,同样的一个程序,我们的python只用了一行就实现了。
使用python输出如下格式的内容
**************
hello
**************
新建记事本
修改后缀为.py
注:
如果你修改后缀之后还是原来的.txt
你需要显示出你当前操作系统的文件后缀,在再对其做修改
具体操作如下:
如果你的电脑是win10系统的话。
如何来编辑
就进入到下面的编辑界面
编辑下面内容:
print("**************")
print("hello")
print("**************")
保存(Ctrl+S)
运行(F5)
运行结果:
可以发现一条语句一行,我们如何让它不换行呢?
概念python中如何获取函数的帮助信息
换行功能实际是print(函数自带的,如何将这个功能关闭呢)
print("hello",end="") 取消换行
当然上面的效果我们也可以使用别的方法实现
直接加空格
字符串的拼接
print(" "+”hello“)
也可以实现这个效果
python很强大,我们的也可以直接
print(" * " * 20)
python的输入
设计一个程序,屏幕上输出
请输入你的名字: allen
欢迎allen用户登录
赋变量
name = "allen"
print(name)
print("欢迎allen用户登录")
那么我们如何把print语句中的allen用变量替换呢
使用我们前面学过的字符串相加就可实现
print("欢迎"+name+"用户登录")
name = "allen"
print(name)
print("欢迎"+name+"用户登录")
input() 函数实现输入
变量 = input("字符串")
input(函数)一般结合变量使用,就是将你在屏幕上输入的值赋给变量
下面我们来看一个具体的例子:
name = input("请输入你的名字:")
print(name)
print("欢迎"+name+"用户登录")
屏幕会在暂停在这,等待你的输入
这样我们在最开始设想的功能就实现了
我们在具体对其进行分析一下:
注:python2的输入(我们前面使用的是python3)
使用 raw_input("字符串")
练习:
屏幕上输出
请输入用户名:lisa
请入密码:123
用户名是lisa密码是123
username = input("请输入用户名:")
password = input("请输入密码:")
print("用户名是"+username+"密码是"+password)
if语句 条件判断
结构
单分支结构
if 条件:
子语句(子语句一定要有缩进4个空格,条件成立执行)
双分支结构
if 条件:
子语句(子语句一定要有缩进4个空格,条件成立执行)
else
子语句(当条件不成立的时候才会执行)
多分支结构
注:子语句不缩进,就会报错
条件语句中的几个特殊语句
- and 并且 (两个条件必须同时成立)
- or 或者 (两个条件只需要满足其中一个条件即条件成立)
- not 条件取反
- == 判断条件是否相等
- > 大于
- < 小于
- != 不等于
- >= 小于等于
- <= 大于等于
and应用:
我们对前面的练习做一个升级
要求如果用户输入的用户名不是tom或者密码不是123
报用户名或密码有误
username = input("请输入用户名:")
password = input("请输入密码:")
#print("用户名是"+username+"密码是"+password) #将这一行注释掉
if username == "tom" and password == "123":
print("欢迎"+username)
else:
print("您输入的用户名或密码有误")
or实例:
if 3 > 4 or 4 < 5:
print("yes")
else:
print("no")
not实例:
if not (3 > 4) :
print("yes")
else:
print("no")
多分支实例
小练习:成绩判断
请输入你的成绩:69
判断标准
0-59 输出不及格
60-69 及格
70-79 良
80-89 好
90-100 优秀
准备:
代码:
num = int(input("请输入成绩:"))
if num >= 0 and num <= 59:
print("不及格")
elif num >= 60 and num <=69:
print("及格")
elif num >= 70 and num <=79:
print("良")
elif num >= 80 and num <=89:
print("好")
elif num >= 90 and num <=100:
print("优秀")
else:
print("请输入0-100以内的成绩")
运行结果达到了我们预期的效果
变量
变量 = 赋值(赋值类型)
变量名称的定义
- 不能以数字开头
- 变量名称中不能包含特殊符号(_下划线除外)
- 变量名称区分大小写
- 关键字不能作为变量名称
- 内键函数不能作为变量名称
注1:
关键字
['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']
注2:
如何区分内建函数
1、颜色 在使用我们的python编译器编写时,内建函数呈现紫色
2、查看官方的帮助手册
内建函数作为变量的后果,这个函数就不能使用了
可以使用del(type)来还原。
赋值类型
数字
inta = 9
字符串赋值
字符串赋值的几种形式
astr = "python"
print(astr[5])
print(astr[0:2]) #变量[脚标的起始位置:脚标的结束位置] 显示结束位置之前的内容才会被显示
#print(astr[6]) 报错
print(astr[0:1000]) #结束位取任意超过其长度的值
print(astr[0:1000:2]) #变量[脚本的起始位置:脚标的结束位置:步长值]
print(astr[-1]) #取最后一位
#print(astr[-7]) 报错
print(astr[-1:-1000:-1]) #反向取值
print(astr[:])
print(astr[::-1])
列表
介绍:
列表的特点 [] 在中括号可以写入不同类型的数据,每个值直接用逗号分隔
支持脚标取值
实例:
输入用户名的时候,可以输入tom jerry
tom 123 jerry 456
userlist = ["tom","jerry"]
passlist = ["123","456"]
username = input("请输入用户名:")
password = input("请输入密码:")
if username in userlist and password in passlist:
print("欢迎"+username+"登录")
else:
print("你输入的用户名或密码有误")
元组
介绍:
元组的特点()基本与列表类似
实例:
前面的例子也可用元组实现
usertuple = ("lisa","bob")
passtuple = ("123","456")
username = input("请输入用户名:")
password = input("请输入密码:")
if username in usertuple and password in passtuple:
print("欢迎"+username+"登录")
else:
print("你输入的用户名或密码有误")
字典
介绍:
{} 字典没有索引值 用键值对来取值 ["key":"vlaue"]
实例:
对于前面的例子,我们会发现它存在着一个严重的bug,
即只要你输入列表中存在的用户名和密码列表中存在的密码,且他们不相互对应
系统也会判定成功,我们使用字典可以很有效的解决这个问题
userdict = {"tom":"123","jerry":"456","lisa":"789"}
username = input("请输入用户名:")
password = input("请输入密码:")
if username in userdict and password == userdict[username]:
print("欢迎"+username+"登录")
else:
print("你输入的用户名或密码有误")
赋值类型的属性
(数字 字符串 元组 列表 字典)
数字
- inta = 10
- print(type(inta))
<class 'int'>
- print(dir(inta))
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
以上就时int型的全部属性,你也可以理解为这些都是可调用的函数,如果读者接触过面向对象的程序语言,其实属性也有面向对象的概念在里面,int类型就相当与一个类,里面封装有很多函数可以调用。
我们通过help()函数了解其详细的用法介绍
- print(help(inta.bit_length))
Help on built-in function bit_length:
bit_length() method of builtins.int instance
Number of bits necessary to represent self in binary.
>>> bin(37)
'0b100101'
>>> (37).bit_length()
6None
我们来看一下这个函数的效果
- print(inta.bit_length())
4
上面还有很多,我在这就不一一赘述了,读者可以通过help()函数了解相关用法,再去应用它们
字符串
- stra = "Python"
- print(type(stra))
<class 'str'>
- print(dir(stra))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
同样,我们也可以使用help()函数来查看其相关用法
下面我们举几个简单的例子
- print(stra.lower()) #全转小写
python
- print(stra.upper()) #全转大写
PYTHON
- print(stra.split("t")) #切割字符串
['Py', 'hon']
元组
元组中的值不可变的
- tuplea = ("tom","jerry")
- print(type(tuplea))
<class 'tuple'>
- print(dir(tuplea))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
- print(tuplea.index("jerry")) #返回的是它的脚标值
1
列表
列表中的值可变
- lista = ["tom","jerry"]
- print(type(lista))
<class 'list'>
- print(dir(lista))
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
- print(lista.index("tom")) #返回其脚标
0
- lista.append("bob") #附加值
- print(lista)
['tom', 'jerry', 'bob']
字典
- dicta = {"tom":"123","jerry":"456"}
- print(type(dicta))
<class 'dict'>
- print(dir(dicta))
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
- print(dicta.keys()) #得到其键值
dict_keys(['tom', 'jerry'])
- print(dicta.values()) #得到其真值
dict_values(['123', '456'])
- dicta["tom"] = "789" #改变tom其对应的值
- print(dicta)
{'tom': '789', 'jerry': '456'}
循环
小游戏 猜数字游戏
程序可以取出一个100以内的随机整数
你猜大了
你猜小了
猜对
import random #调用random模块
p_choice = int(input("请输入100以内的整数:"))
c_choice = random.randint(1,100)
if p_choice > c_choice:
print("你猜大了")
elif p_choice < c_choice:
print("你猜小了")
else:
print("你猜对了")
我们写这个例子就是为了引出循环
while 循环
结构
while 条件:
子语句
实例
可以看出上面我们猜中的可能性很低,那如果我们循环输入多次呢?
import random #调用random模块
c_choice = random.randint(1,100)
num = 0
while num < 10:
num = num + 1
p_choice = int(input("请输入100以内的整数:"))
if p_choice > c_choice:
print("你猜大了")
elif p_choice < c_choice:
print("你猜小了")
else:
print("你猜对了")
嘿嘿,我猜对了
continue和break
break 结束循环体
continue 跳过本次循环
break实例
num = 0
while num < 10:
num = num + 1
print(num)
if num == 5:
break
continue实例
#1到10的偶数和
num = 0
sum = 0
while num < 10:
num += 1 #num = num + 1 <=> num ++ <=> num += 1
if num % 2 :
continue #coninue下面的语句不执行,跳到下一次循环
sum += num
print(sum)
for循环
根据变量赋值的次数进行循环
结构
for i in 类型:
子语句
1、字符串
for i in "python": #字符串
print("hello"+" "+ i)
2、列表
for i in ["tom","jerry","bob"]: #列表
print("hello"+" "+ i)
3、元组
for i in ("tom","jerry","bob"): #元组
print("hello"+" "+ i)
4、字典
输出的是键值
for i in {"tom":"123","jerry":"456","bob":"789"}: #字典
print("hello"+" "+ i)
如何输出真值
adict = {"tom":"123","jerry":"456","bob":"789"}
for i in adict: #字典
print("hello"+" "+ adict[i])
5、数字
直接这样写
for i in 10:
print("hello"+" "+ i)
会报错
我们引入range()
for i in range(10):
print("hello"+" "+ str(i))
那么我们如何让它不从0开始,而是我们自己设定?
我先通过help()函数查看range()函数的相关用法
for i in range(1,10):
print("hello"+" "+ str(i))
实例:
#1到10偶数求和
sum = 0
for i in range(1,11):
if i % 2:
continue
sum += i
print(sum)
#1到10奇数求和
sum = 0
for i in range(1,11):
if not(i % 2):
continue
sum += i
print(sum)