与用户交互、格式化输出、基本运算符
一、
1. 获取用户输入 ——input
username = input('请输入您的用户名>>>:')
1. 先执行input获取用户输入
2. 将输入的数据绑定给变量名username
3. 以后在程序中就可以使用变量名反复调用用户数据
注意:input获取到的数据都会统一处理成字符串类型
2.输出内部信息——print
1.括号内既可以放数据值也可以放变量名,并且支持多个,逗号隔开即可
print(123) # 123 name = 'Alex' print(name) # Alex print(name, name, name) # Alex Alex Alex
2. print自带换行符
print() # 输出的地方会自己空一行出来
**换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)**
3. print也可以切换结束符
print(数据,end='默认是\n')
**如果不换行,要在后面连续输入,则end设置为空**
print(数据,end = ' ')
扩展: python2与python3中两个关键字的区别
python2中
input方法需要用户自己提前指定数据类型,写什么类型就是什么类型
raw_input方法与python3中input一致,输入的统一处理成字符串
python2中
print方法有两种使用方式:
print 数据值
print(数据值)
提前定义好一些内容,将来需要使用的时候可以局部修改
eg:奖状、录取通知书、合同
在现实生活中大部分情况下使用下划线提示别人填写内容,但是在程序中需要使用占位符: %s %d
单个占位符
info = '%s同学你好' print (info % 'Alex') # Alex同学你好 print (info % 'Bob') # Bob同学你好 print('%s同学你好' % 'Tony') # Tony同学你好
多个占位符
desc = '姓名:%s 年龄:%s 爱好:%s' '''冒号前后无空格,不同项目之间用空格隔开''' print(desc % ('Alex', 18, 'read')) # 姓名:Alex 年龄:18 爱好:read '''数据值之间用逗号隔开''' print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap')) #姓名:Tony 年龄:28 爱好:rap '''直接写成一行'''
注意:有几个占位符就需要几个数据值
print('my name is %s my age is %s' % ('Alex',)) #前面有两个点位符,后面只有一个数据值——'Alex',少了不行 print('my name is %s my age is %s' % ('Alex', 18, 'read')) #前面有两个占位符,后面有三个数据值,多了也不行
不同占位符(%s与%d)的区别:
- %s常见数据类型都支持
- %d只支持数字类型
demo1 = '%s您好,您本月的话费是%s 余额是%s' # %s常见数据类型都支持 print(demo1 % ('jason', 100, 100000000)) # jason您好,您本月的话费是100 余额是100000000 demo2 = '%d您好,您本月的话费是%d 余额是%d' # %d只支持数字类型 print(demo2('Tony',100,100000000)) # 直接报错
%08d
8指的是输出的数字位数为8位,不够的用0填充,如果超过八位则全部输出。
print('%08d'% 123) # 00000123 print('%08d'% 1234324324) # 1234324324
例题:
获取用户输入并打印成下列格式:
"""
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
"""
代码实现: 1. 制定一个打印模板 info_demo = """ -------------- info of %s ----------- Name:%s Age:%s Sex : %s Job : %s ---------------- end ----------------- """ 2. 获取用户输入 Name = input('Name>>>:') Age = input('Age>>>:') Sex = input('Sex>>>:') Job = input('Job>>>:') 3.格式化输出 print(info_demo % (Name, Name, Age, Sex, Job))
三、基本运算符号
1、数学运算符号
加:+、减:-、乘:*、除:/、赋值符号=、乘方:**、取余数:%、整除://
通常代码中都会简化运算的表达式:
2、比较运算符号
大于:>、小于:<、大于等于:>=、小于等于:<=、等于号:==、不等于:!=。
比较运算符号返回的都是布尔值
四、常用赋值符号
python中的“=”号跟数学中的含义不同,“=”的称呼是赋值符号,顾名思义就是把值赋予给某个对象。在python中,“age = 19”中就是把右边的数据值赋值给左边的变量。
1、链式赋值
给多个变量名绑定同一数据值
举例:
name = 'Alex' # 数据值'Alex'赋值给变量名name name1 = name # name的数据值赋值给变量名name1
name2 = name1 # name1的数据值赋值给变量名name2
简单高效的方法:
name = name1 = name2 = 'Alex'
2、交叉赋值
把两个变量名互相交换数据值
m = 100 n = 999 # 错误写法 m = n n = m print(m, n) # 999 999 方式1:采用中间变量 temp = m m = n n = temp print(m, n) # 999 100 方式2:交叉赋值语法 m, n = n, m print(m, n) # 999 100
3、解压赋值
当一个列表内有个数据值需要跟多个变量名绑定时,可以使用解压赋值。
解压赋值的时候正常情况下数据值个数和变量名个数需一致,否则会报错。
name_list = ['jason', 'kevin', 'tony', 'oscar'] '''low的写法''' name1 = name_list[0] name2 = name_list[1] name3 = name_list[2] name4 = name_list[3] '''解压赋值语法''' name1, name2, name3, name4 = name_list
注意:解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致
name_list = ['jason', 'kevin', 'tony', 'oscar'] a, b = name_list # 变量名少了不行 a, b, c, d, e = name_list # 变量名多了也不行
当需要解压的数据个数特别多,并且我们只需要使用其中的几个 那么可以打破上述的规则:
name_list = ['jason', 'kevin', 'tony', 'oscar'] a, *b = name_list print(a) # jason print(b) # ['kevin', 'tony', 'oscar'] a, c, *b = name_list print(a) # jason print(c) # kevin print(b) # ['tony', 'oscar'] a, *b, c = name_list print(a) # jason print(b) # ['kevin', 'tony'] print(c) # oscar
当数据值不准备使用的时候 可以使用下划线作为变量名绑定:
name_list = ['jason', 'kevin', 'tony', 'oscar'] a, *_, c = name_list print(a) # jason print(c) # oscar
五、 逻辑运算符号
1、and
当and所连接的所有条件都成立时,返回True,否则返回False。
print(1<2 and 2>3) # False print(1<2 and 2<3) # True
如果需要准确的说出具体的结果值,那么需要按照下列方式:
1. 如果and左边的条件是成立的,那么就完全取决于右边的条件
2. 右边如果直接是数据值,那么结果就是该数据值,如果是含有表达式,则为布尔值
print(1 < 10 and 666) # 666 print(1 < 10 and 2 < 8) # True print(111 and 222) # 222
2、or
当or所连接的所有条件中有一个成立,就返回True,否则返回False。
print(1 > 2 or 4 < 8 or 10 < 1 or 1 == 2) # True print(1 < 10 or 666) # True print(666 or 1 > 10) # 666 print(0 or False) # False print(0 or 111) # 111
3、not
非
取反
返回与原来相反的布尔值。
is_login = False print(not is_login) # True
以下假设变量 a 为 10, b为 20:
六、成员运算符号
in
用于判断变量名或数据值是否在某个数据值或变量名内部。(例如个体是否在群体内部)
name_list = ['jason', 'kevin', 'oscar', 'jerry'] print('tony' in name_list) # False print('tony' not in name_list) # True print('j' in name_list) # False 列表最小单位是数据值,不能再细分 s1 = 'hello world' print('d' in s1) # True 字符串最小单位是单个单个的字符
d1 = { 'username': 'jason', 'pwd': 123 } print('jason' in d1) # False 字典成员运算只有键参与 print('username' in d1) # True
七、
- id() 返回一串数字,该数字可以看成是内存地址
- is 判断内存地址是否相同
- == 判断数据值是否相同
l1 = [11, 22, 33, 44, 55, 66, 77, 88] l2 = [11, 22, 33, 44, 55, 66, 77, 88] print(l1 == l2) # True print(l1 is l2) # False
从这里我们可以得出一个结论:内存地址相同时,两者数据值一定相同,数据值相同时,内存地址不一定相同。
小整数池
当我们把两个不同的变量名绑定相同的数据值时,python解释器会进行优化,pycharm也会进行一定的优化,一些位数较小的数字和一些较短的字符串当被检测到相同时,内存空间中会只用一个地址表示,反之,就会使用两块内存空间中的地址表示
# 整形:较短的可以 a1 = 11 a2 = 11 print(a1 is a2) # True #浮点型:较短的可以 a3 = 11.11 a4 = 11.11 print(a3 is a4) # True #字符串:较短的可以 a5 = 'jason' a6 = 'jason' print(a5 is a6) # True #列表:无论长短都不可以 a7 = [1,2,3] a8 = [1,2,3] print(a7 is a8) # False #字典:无论长短都不可以 a9 = {'name' : 'zzh','age' : '21'} a10 = {'name' : 'zzh','age' : '21'} print(a9 is a10) # False #元组:较短的可以 a11 = (1,2,3) a12 = (1,2,3) print(a11 is a12) # True #集合:无论长短都不可以 a13 = {1,2} a14 = {1,2} print(a13 is a14) # False
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人