A. python 3 数组 中遍历为什么得不到 正确的 数据
方法/步骤
1.先确定工具与环境都配置好了,打开pycharm,新建一个test.py,新建一个列表list1=['C','C++','JAVA','C#','PYTHON','JavaScript'],如图所示:
B. python编程,通过键盘输入一个字符串,遍历该字符串中的每一个字符
string = input("请输入:")
for i in string:
print(i)
C. python中列表的遍历
没有优雅的方法解决,只有不要使用print语句,如楼上所说,或者使用python3.X中的print函数(通过
from __future__ import print_function使能print函数形式)
其实,在python2.X手册中对print语句描述说:(python2.7.2官方帮助文档)
一个空格会被自动打印在每个对象前,
除非:(1)还没有输出写到标准输出中
(2)当最后一个写到标准输出的是一个除了空格‘ ’的空白字符
(3)当最后写到标准输出的不是一个print语句。
所以在apple、banana等每个字符前都有一个空格。(apple的a前也有空格呢!)
一个好的解决办法是使用python3.X中的print函数。
通过在文件前面加上:
from __future__ import print_function
就可以使用print的函数形式了。
print函数的语法:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
默认下,若没有指定sep,则使用空格。没指定end,则使用换行符。没指定输出文件则输出到标准输出。
例如:print('hello','world',sep='-',end='#')输出:
hello-world#
所以,你的程序可改为:
from __future__ import print_function
list = ["apple", "banana", "grape", "orange"]
for x in range(len(list)):
print('list[%d]:'%x,end='')
for y in range(len(list[x])):
print(list[x][y],sep='',end='')
print('')
至于: 'list[%d]:'%x 这里的百分号,是一个对字符串的操作符。百分号使得百分号前面的字符串中
的%d被百分号后的x的值替换掉。
D. Python用for和什么保留字可以组成循环遍历字符串中的每个字符
用for和in可以组成循环遍历字符串中的每个字符,如:
for c in "this一个char串":
##对每个字符c进行操作的语句
E. 在python中如何遍历字符串进行首位交换
直接使用字符串切片就可以实现:
s = "Thereisastringword"
# 最后一位 + 去头去尾的部分 + 首字符
s1 = s[-1] + "".join(s[1:-1]) + s[0]
print(s1)
用循环也需要等循环结束了再拼接一次字符串
s = "Thereisastringword"
s1 = ""
for i in range(len(s)):
if i == 0:
lastword = s[i]
elif i == len(s) -1 :
fristword = s[i]
else:
s1 += s[i]
print(fristword + s1 + lastword)
F. python字符串处理问题
strip函数只能去除首尾字符,不能去掉中间字符
strip函数没有副作用,也就是返回值才是去掉后的字符串
更简洁的写法left = ''.join([c for c in password if c in symbols])
G. Python读取一个字符串,并循环输出几遍
总共六个字符
python可以通过str*2重复输出字符串printstr*2#输出字符串两次,循环代码块就是将取到的每个字符进行打印输出,总共六个字符,就循环执行了6次。接下来我们使用For循环遍历一个列表。
H. Python的中文字符串遍历问题
首先一个,你这个'a'是什么编码?可能不是你所想的gbk
>>> a='测试'
>>> a
这样试试看,如果出来是6个字(word),说明是utf-8,如果是4个字,说明是gbk。
另外,不管是utf-8还是gbk,都不能这样遍历,因为这里它会一个字一个字拿出来。虚拟机把a当成一个长度为len(a)的字符串了。
接下来是遍历问题。
linux的shell大都默认是utf-8,所以一个中文字符是三个字,所以要三个三个地读,你可以试下:
>>> a[:3]
出来就是个测字
windows的command的默认是cp936,也就是gbk,一个中文字符是两个字,所以两个字两个字地读。
还有另一种遍历的方法,把字符串转换成unicode,这样中文英文都是一个字,就可以用你的for i in a的方法遍历了。这个的好处是中文英文字符都是一个字,而utf-8和gbk里,英文字母只占一个字。
I. python3中,定义一个函数,遍历字符串,使用print后调用函数会有None,换成return结果又不对
第一个图中,在执行 print(bianli__str('sjsjsj'))这句时,首先执行print括号中的内容,即进入bianli__str函数,执行了函数中的print语句,打印的内容是字符串的每一个字符,然后退出函数,执行print这个操作,print的内容是你定义的函数,这个函数本身是没有值的,所以是None
解决的方法就是调用函数的时候不用再print了,如下图:
第二个图中结果不对是因为return就会退出函数,所以打完第一个字符后就退出了
J. python遍历字符串时是逐字遍历,遍历txt文本时是逐行读取,这是为什么
for循环遍历,实际上是返回一个迭代器,并不断调用其next()方法的过程。next()返回什么,取决于迭代器的具体实现,对于str类型来说,就返回下一个字符串;对于file类型来说,就返回下一行。