IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python语言程序设计入门学习(疑难点及各种报错汇总) -> 正文阅读

[Python知识库]Python语言程序设计入门学习(疑难点及各种报错汇总)

目录

疑难点汇总:?

?1.如何一行中输入多个数据

?2.如何按照各种输出格式要求进行输出

?3.标识符与关键字的区分

?4.Python的变量(与C不同之处)

?5.int()函数补充

报错汇总:?

?1.TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

?2.ValueError: invalid literal for int() with base 10

?3.TypeError: 'float' object cannot be interpreted as an integer


疑难点汇总:?

?1.如何一行中输入多个数据

????????input()是 Python内置函数,功能是接受标准的输入数据。无论用户输入什么内容,input()函数都以字符串类型返回结果。

例如输入1 2 或者 3,4

c = eval(input())
#一开始我只会一行输入一个...
a,b = input().split()
d,e = input().split(',')
#利用字符串中的split方法,填入分隔符(默认为空格)即可
print(a, b, d, e)

输出如下:


?2.如何按照各种输出格式要求进行输出

????????print()也是Python内置函数,功能是输出运算结果。print()函数的语法格式如下:

????????print(*objects, sep='', end='\n', file=sys.stdout)

????????其中,objects表示输出的对象,输出多个时用逗号分隔;sep 用来分隔多个输出对象,默认为一个空格(输出显示时候用空格分开的,比如输入了1,2,3,输出是1 2 3)end 用来设定本次输出以什么结尾,默认是换行符\nfile表示想要写入的文件对象,默认是标准输入输出。

a,b,c,d = 1, 2, 3, 4
print(a)
#输出一个
print(a,b,c,d)
#输出多个
print(a,b,c,d,sep=',',end='!')
#输出时的分隔符从空格改为逗号,且以感叹号结尾
print("\n本答案的输出分别是{},{},{},{}".format(a,b,c,d))
#也可以采用格式化输出方法format


?3.标识符与关键字的区分

????????标识符:就是名称,就像我们每个人都有属于自己的姓名一样,标识符的作用就是作为变量、函数、类、模块和文件等对象的名称,以方便程序调用。

命名规则:由字母、数字、下划线3种字符组成,①不能以数字开头;②严格区分大小写;③不能和python种的关键字重名;④标识符不能是标准函数已经使用的名称,如print

合格标识符: a, abc123, abc_123,___,_ab_cd_12cc,myName,while_

非法标识符: 123, 123a,abc_,while,a.2,my-Name

? ? ? ? 关键字:又称保留字,它们是Python语言中的一些已经被赋予特定意义的单词。如False,True,if,else

? ? ? ? 此外还有很多关键字,如图:

import keyword
print(keyword.kwlist)


?4.Python的变量(与C不同之处)

首先,Python语言使用等号作为赋值运算符,具体格式为: 变量名?= 要存储的数据

①变量名是标志符的一种,因而也要遵守标识符的命名规则。

②C语言中,对于不同类型的数据,要声明不同的变量类型如int a,double b,等。但python中的变量不需要声明,但每个变量在使用前必须先赋值,赋值完之后变量才会被创建值存放在内存中的某个位置,变量只是用于引用而已。

为了证明上面这句话,进行简单的代码实验:

x=3
print(id(x))
#注意,id(x)是返回地址的函数
x=7
print(id(x))

?输出地址为:

从图中可以看出他们俩返回的地址不同,这是为什么?

实质上,例如程序在执行语句x = 3时, Python要做以下三个事情。

①创建一个对象,即分配一块内存以存储数据3

②创建一个变量x,如果它还没有创建的话。

③将变量名x与对象关联起来,创建变量并使用变量引用对象。

那这次剖析一下代码就明白为什么了,代码如下:

x=3
print(id(x))
''' 注意!这里的id(x)返回的是对象3的地址。'''
x=7
print(id(x))
''' 注意!这里的id(x)返回的是对象7的地址。'''

P.s.:在Python中,当一个变量名被赋予新的对象时, 之前赋予的那个对象(如果此时没有被其他的变量名或对象引用的话)占用的内存空间就会被回收。这种自动的内存管理过程被称为“垃圾收集”。


?5.int()函数补充

class int(object)
 |  int([x]) -> integer
 |  int(x, base=10) -> integer

① int(x)是将符合数学格式的数字型字符串x转换成整数,获将浮点数转换成整数,取整。

例如:int(6.5) 返回 6;int("123") 返回 123;int() 返回 0 (无参数时返回0)

② int(x, base = 10) 则是 将 base进制的x字符串 转换成对应的十进制整数

例如:int("aa",16) 返回 170(aa是十六进制数,转换成十进制通过公式就是 10*16^1 + 10*16^0 = 170); int("1100",2) 返回 12 (1100是二进制数,转换成十进制通过公式就是1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 12。

其他例子:

print(int())
print(int(3.6))
print(int("12", 16))
print(int("1010", 2))
print(int("aa",16))
print(int("1100", 2))

?详细内容可以通过help(int())查看:

class int(object)
 |  int([x]) -> integer
 |  int(x, base=10) -> integer
 |  
 |  Convert a number or string to an integer, or return 0 if no arguments
 |  are given.  If x is a number, return x.__int__().  For floating point
 |  numbers, this truncates towards zero.
 |  
 |  If x is not a number or if base is given, then x must be a string,
 |  bytes, or bytearray instance representing an integer literal in the
 |  given base.  The literal can be preceded by '+' or '-' and be surrounded
 |  by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
 |  Base 0 means to interpret the base from the string as an integer literal.
 |  >>> int('0b100', base=0)
 |  4

报错汇总:?

?1.TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

译:类型错误:int()参数必须是字符串、对象或数字之类的字节,而不是“list”

问题代码示例(运行将会报错)

n,m=int(input().split())
print(n+m)

原因假如输入30 50, 首先input()传入字符串"30 50",再通过split 默认以空格为分隔符分割成了['30','50']的字符串list,但是int()参数不能是list,所以导致了报错。

可以修改为:

n,m=input().split()
n = int(n)
m = int(m)
print(n+m)

str = input()
n = int(str.split()[0])
m = int(str.split()[1])
print(n + m)

?2.ValueError: invalid literal for int() with base 10

问题代码示例(运行将会报错)

''' 错误样例1'''
y = int("10.0")
print(y)

''' 错误样例2 , 当用户输入 10.0 时将报错! '''
x = int(input())
print(x)

原因:根据现有语法规定,int(x), x如果为字符串,当从字符串转整数时,要为整数才可以直接转。解决方法就是先转成float, 再从float转成int。

样例1修改:

''' 修改样例1'''
y = int(10.0)
print(y)

(因为int函数中的x为10.0的float类型,可以强转成int类型,但只是简单地取整而非四舍五入。)

样例2修改:

'''  修改样例2 , 当用户输入 10.0 时输出10 '''
x = int(float(input()))
print(x)

?3.TypeError: 'float' object cannot be interpreted as an integer

译:类型错误:“float”对象不能解释为整数

问题代码示例(运行将会报错)

print(bin(12.5))
print(oct(12.5))
print(hex(12.5))
'''以上三个输出都会导致报错'''

原因:可以利用help()函数查阅bin(),oct(),hex()函数的使用方法,这些Python内置函数要求参数为整数, 所以当出现此类型报错时,多关注是否是由于参数不符合要求。

P.s.:除上述问题外呢,也有可能是因为python3不向后兼容python2导致的,因为在python2中的 /(除符号) 只留整数部分,去掉小数而python3中的/是真正意义上的除法,结果是float型浮点数python3中的//等价于python2中的/。

——————————————————持续更新中———————————————————

P.s:文章小部分参考教材《Python语言程序设计入门》

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:21:00  更:2021-11-20 18:23:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:38:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码