输入:input()
print :将数据从代码区--->控制台
input:将数据从控制台--->代码区
格式:变量名 = input(提示信息)
名字 = input(提示信息)
注意:input语句得到的类型一定是字符串(str)类型。
例:用户输入名字,程序输出该用户名
# 用户输入信息
name = input("请输入您的名字:")
# 打印用户信息
print("该用户的名字是:name")# 错误
print("该用户的名字是:",name)
变量
1.引入
问题:程序可以解决问题,但首先需要描述问题,描述的信息需要计算机使用,如何使用信息?保存用户信息?–变量
变量:临时保存数据的容器。
格式: 变量名 = 值
name = "holle world"
a = 1
0x2341a23---->'holle world'
0x23454646--->1
使用变量记录地址
问题:什么时候print语句打印的内容需要加引号,什么时候不需要?
当输出内容为变量时候,不需要加引号,如果需要打印字符本身,就需要添加引号。
# 倒酒
cup = input("需要倒多少酒?")
# 喝酒
print("一口气我喝掉了",cup,"的酒")
print("一口气我喝掉了","cup","的酒")
2.变量理解
- 变量引用
a = 10
print(a) # 结果为10
- 共享引用
a = 10
b = a
print(a) # 10
print(b) # 10
- 改变引用
a = 10
b = a
a = 20
print(a) # 20
print(b) # 10
标识符
1.标识符
程序内自定义的名字,包含变量,函数,类,模块。
2.标识符规则
- 只能够由数字字母和下划线构成,且数字不能开头
—a = 10 # 错误
_a = 10 # 正确
a2 = 100 # 正确
2a = 100 # 错误
@a = 100 # 错误,特殊符号@
- 不能和python内部的关键字同名
- 关键字:python内置的一些名字,具有特定含义
None = 10 # 错误
and = "asdfaklsfhk" # 错误
print = 20 # 语法正确,但是不推荐使用
print_ = 20 # 可以`
- 查看关键字
```python
import keyword
print(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.项目规范
- PEP8规范----python中定义的代码规范
- 见名知意
age = 18
name = "张三"
- 下划线命名法:使用下划线将多个单词连接起来
home_address="北京市"
- 驼峰命名法
- 大驼峰命名法
HomeAddress="北京市"
- 小驼峰命名法
homeAddress="北京市"
4.常量
不发生改变的量,全部使用大写字母构成的变量。
PI = 3.14 # 常量
私有变量
字母前边加下划线,通常用来表示私有变量
_age = 18
变量的连续赋值
a,b,c = 10,20,30
print(a,b,c) # 10,20,30
数据类型
1.类型分类
-
基本数据类型
- 字符串(str):表达一种名词,使用引号包围的对象
fruit = ‘苹果’
name = “zs”
hobby = “”“睡觉”""
a = "lisi’ # 错误- 数值类型
- 整型(int):数学中的整数。
- 浮点型(float):数学中的小数。
- 复数(complex):包含实部和虚部:a+bj
- 布尔类型(bool):只包含两个值: True , False
-
组合数据类型----容器
- 列表
- 元组
- 字典
- 集合
-
对象数据类型
2.数值类型的计算
- 同种类型计算得到类型仍然为该类型(bool除外)
- 不同类型计算,首先要转化为同种类型再计算,转化的原则是bool—>int ---->float
进制
1.计算机中的进制
- 二进制:0-1,0b/B
- 八进制:0-7, 0o/O
- 十进制:0-9,
- 十六进制:0-9 ,a-f, 0x/X
2.进制转化方法
- bin():将给定数字转化为二进制
- oct():将给定数字转化为八进制
- hex():将给定数字转化为十六进制
num = 100
print(bin(100)) # 0b1100100
print(oct(100)) # 0o144
print(hex(100)) # 0x64
类型强制转化
格式:目标类型(待转化数据)
#int --->float:整数后加".0"
float(100) # 100.0
# float --->int:直接舍弃小数部分
num = 2.1
int(num) # 2
num2 = 2.9
int(num2) # 2
# bool -->int
print(int(True)) # 1
print(int(False)) # 0
# int -->bool:非零数字都是True
print(bool(10)) # True
print(bool(0)) # False
# float--->bool:非零数字都是True
print(bool(2.234235)) # True
print(bool(0.0003)) # True
print(bool(0.0)) # False
# int--->str:直接在数字两边加引号
num = 10
s1 = str(10)
print(s1) #'10'
查看数据的类型:type(待查看的数据)
number = 1
number2 = 1.2
strs = '字符串'
booler = True
print(type(number)) #<class 'int'>
print(type(number2)) #<class 'float'>
print(type(strs)) #<class 'str'>
print(type(booler)) #<class 'bool'>
其他类型转化
-
chr():将Unicode编码转化对应的字符
print(chr(22242)) # 团
-
ord():将字符转化为对应Unicode编码
print(ord(“团”)) # 22242
-
eval():函数用来执行一个字符串表达式,并返回表达式的值。
print(eval(‘1+2’)) # 3
注意:特殊情况不能转化
str —>int
int(“hello”) # 报错
运算符
1.算术运算符: +,-,*,/,//,%,**
-
除法
- / :真除法,注意该方法得到的类型一定是浮点型。
- // :整除法:只保留商的部分
print(4/2) # 2.0
print(3/2) # 1.5
print(4//2) # 2
print(3//2) # 1
print(4.0/2) # 2.0
print(4.0//2) # 2.0 -
取余: %
print(4%2) # 0
print(2%3) # 2 -
幂运算: **
print(2**3) # 8
2.赋值运算符: =
name = “zs”
3.复合运算符: +=,-=,*=,/=,//=,%=,**
a = 10
a = a+1 # 自增1
a += 1 # 自增1
4.关系(比较)运算符: >,<,==,>=,<=,!=
得到的结果一定是布尔类型
print(1>2) # False
print(1<2) # True
print(1!=2) # True
5.逻辑运算符: and,or,not
优先级:not>and>or
返回的内容为起决定作用的那个值
# and
print(True and True) # True
print(False and True) # False
print(1 and 2) # 2
print(2 and True) # True
print(0 and 3) # 0
print(3.5 and False) # False
# or
print(True or True) # True
print(False or True) # True
print(1 or 2) # 1
print(2 or True) # 2
print(0 or 3) # 3
print(3.5 or False) # 3.5
# not
print(not True) # False
print(not 1) # False/0
6.成员运算符: in
返回布尔值
lis = [‘a’,‘b’,‘c’]
print(‘a’ in lis) # True